5

Tôi không thể khớp thời gian suy luận được Google báo cáo cho các kiểu được phát hành trong model zoo. Cụ thể là tôi đang thử mô hình faster_rcnn_resnet101_coco của mình trong đó thời gian phỏng đoán được báo cáo là 106ms trên GPU X Titan.API phát hiện đối tượng Tensorflow có thời gian suy luận chậm với phân phối lưu lượng truy cập

Hệ thống phân phối của tôi đang sử dụng TF 1.4 chạy trong vùng chứa được tạo từ số Dockerfile do Google phát hành. Khách hàng của tôi được mô hình hóa sau số inception client cũng do Google phát hành.

Tôi đang chạy trên Ubuntu 14.04, TF 1.4 với 1 Titan X. Tổng thời gian suy luận của tôi gấp 3 lần so với báo cáo của Google ~ 330ms. Làm cho số tensor proto được thực hiện ~ 150ms và Predict mất ~ 180ms. My saved_model.pb trực tiếp từ tệp tar được tải xuống từ vườn thú mô hình. Có điều gì tôi đang thiếu? Tôi có thể thực hiện các bước nào để giảm thời gian suy luận?

Trả lời

2

Bỏ qua không tối đa có thể là nút cổ chai: https://github.com/tensorflow/models/issues/2710.

Kích thước hình ảnh có kích thước 600x600 không?

+0

Tôi không nghĩ đó là vấn đề, tôi đang sử dụng TF 1.4 là phiên bản tương tự mà các mô hình đã xuất được dựa trên. Từ vườn thú mô hình: 'Đồ thị suy luận đông lạnh của chúng tôi được tạo ra bằng cách sử dụng phiên bản phát hành v1.4.0 của Tensorflow' –

0

Tôi chạy mô hình tương tự với một Titan Xp, tuy nhiên, tôi sử dụng kịch bản infer_detections.py và đăng nhập lần vượt qua phía trước [cơ bản bằng cách sử dụng datetime trước và sau khi tf_example = detection_inference.infer_detections_and_add_to_example ( serialized_example_tensor, detected_boxes_tensor, detected_scores_tensor , detect_labels_tensor, FLAGS.discard_image_pixels) Tôi đã giảm số lượng đề xuất được tạo trong giai đoạn đầu của FasterRCN từ 300 xuống 100, và giảm số lần phát hiện ở giai đoạn thứ hai xuống còn 100. Tôi nhận được con số trong khoảng 80 đến 140 ms và tôi nghĩ rằng hình ảnh 600x600 sẽ xấp xỉ ~ 106 hoặc ít hơn một chút trong thiết lập này (do Titan Xp và độ phức tạp giảm của mô hình). Có lẽ bạn có thể lặp lại quá trình trên trên phần cứng của bạn, theo cách đó nếu các con số cũng ~ 106 ms cho trường hợp này, chúng ta có thể phân bổ sự khác biệt cho việc sử dụng DockerFile và máy khách. Nếu các con số vẫn còn cao, thì có lẽ nó là phần cứng.

Sẽ hữu ích nếu ai đó từ nhóm Phát hiện đối tượng Tensorflow có thể nhận xét về thiết lập được sử dụng để tạo số trong model zoo.

0

@Vikram Gupta bạn đã kiểm tra mức sử dụng GPU của mình chưa? Nó có ở đâu đó gần 80-100% không? Tôi sử dụng GPU rất thấp để phát hiện các đối tượng của một luồng video với API và các mô hình của "mô hình sở thú".

3

tôi đã có thể giải quyết được hai vấn đề bởi

  1. tối ưu hóa các cờ biên dịch. Thêm nội dung sau vào bazel-bin --config=opt --copt=-msse4.1 --copt=-msse4.2 --copt=-mavx --copt=-mavx2 --copt=-mfma

  2. Không nhập tf.contrib cho mọi suy luận. Trong mẫu inception_client do google cung cấp, these lines nhập lại tf.contrib cho mỗi lần chuyển tiếp.

Các vấn đề liên quan