我无法匹配Google针对其model zoo发布的模型报告的推理时间。具体来说,我正在尝试他们的faster_rcnn_resnet101_coco
模型,其中报告的推理时间为106ms
在Titan X GPU上。
我的服务系统使用的是在由Google发布的Dockerfile构建的容器中运行的TF 1.4。我的客户端是在Google发布的inception client之后建模的。
我正在运行Ubuntu 14.04,TF 1.4和1 Titan X.我的总推理时间比谷歌报告的差330倍~330ms。使tensor proto需要大约150毫秒而Predict需要大约180毫秒。我的saved_model.pb
直接来自模型动物园下载的tar文件。有什么我想念的吗?我可以采取哪些步骤来缩短推理时间?
答案 0 :(得分:3)
我能够通过
解决这两个问题优化编译器标志。将以下内容添加到bazel-bin --config=opt --copt=-msse4.1 --copt=-msse4.2 --copt=-mavx --copt=-mavx2 --copt=-mfma
不为每个推理导入tf.contrib。在google提供的inception_client示例中,these lines为每个正向传递重新导入tf.contrib。
答案 1 :(得分:2)
非最大限制抑制可能是瓶颈:https://github.com/tensorflow/models/issues/2710。
图像尺寸是600x600吗?
答案 2 :(得分:0)
我使用Titan Xp运行了类似的模型,但是,我使用了infer_detections.py脚本并记录了正向传递时间[基本上通过使用datetime之前和之后 tf_example = detection_inference.infer_detections_and_add_to_example( serialized_example_tensor,detected_boxes_tensor, detected_scores_tensor,detected_labels_tensor, FLAGS.discard_image_pixels) 我已将FasterRCN第一阶段生成的提案数量从300减少到100,并将第二阶段的检测数量减少到100。我得到的数字在80到140毫秒之间,我认为600x600图像在这个设置中大约需要106或更少(由于Titan Xp,并且降低了模型的复杂性)。 也许你可以在你的硬件上重复上述过程,如果这个数字也是~106 ms,我们可以将差异归因于DockerFile和客户端的使用。如果数字仍然很高,则可能是硬件。
如果来自Tensorflow对象检测团队的人员可以对用于生成model zoo中的数字的设置发表评论,将会很有帮助。
答案 3 :(得分:0)
@Vikram Gupta你检查过你的GPU使用情况吗?它是否接近80-100%?我经历了非常低的GPU使用率,使用API和“模型动物园”模型检测视频流的对象。