繁体   English   中英

Tensorflow 对象检测 API 在使用 tensorflow 服务时推理时间很慢

[英]Tensorflow Object Detection API has slow inference time with tensorflow serving

我无法匹配 Google 为其模型动物园中发布的模型报告的推理时间。 具体来说,我正在尝试他们的faster_rcnn_resnet101_coco模型,其中报告的推理时间在 Titan X GPU 上为106ms

我的服务系统使用 TF 1.4,运行在由 Google 发布的Dockerfile构建的容器中。 我的客户端是仿照同样由 Google 发布的初始客户端

我在 Ubuntu 14.04、TF 1.4 和 1 个 Titan X 上运行。我的总推理时间比谷歌报告的时间差 3 倍~330 毫秒。 制作张量原型需要大约 150 毫秒,而预测需要大约 180 毫秒。 我的saved_model.pb直接来自model zoo 下载的tar 文件。 有什么我想念的吗? 我可以采取哪些步骤来减少推理时间?

我能够通过以下方式解决这两个问题

  1. 优化编译器标志。 将以下内容添加到 bazel-bin --config=opt --copt=-msse4.1 --copt=-msse4.2 --copt=-mavx --copt=-mavx2 --copt=-mfma

  2. 不为每个推理导入 tf.contrib。 在谷歌提供的 inception_client 示例中, 这些行为每个前向传递重新导入 tf.contrib。

非最大抑制可能是瓶颈: https : //github.com/tensorflow/models/issues/2710

图像大小是否为 600x600?

我用 Titan Xp 运行了类似的模型,但是,我使用了 infer_detections.py 脚本并记录了前向传递时间 [基本上是通过在 tf_example = detection_inference.infer_detections_and_add_to_example(serialized_example_tensor,detected_boxes_tensor,detected_scores_tensor,detected_labels.pixelscard)之前和之后使用日期时间我将 FasterRCN 第一阶段生成的提案数量从 300 减少到 100,并将第二阶段的检测数量也减少到 100。 我得到了 80 到 140 ms 范围内的数字,我认为 600x600 图像在此设置中大约需要约 106 或略少(由于 Titan Xp 和降低的模型复杂性)。 也许您可以在您的硬件上重复上述过程,这样如果这种情况下的数字也是 ~106 ms,我们可以将差异归因于 DockerFile 和客户端的使用。 如果数字仍然很高,那么也许是硬件。

如果 Tensorflow 对象检测团队的某个人可以评论用于在模型动物园中生成数字的设置,那将会很有帮助。

@Vikram Gupta 你检查过你的 GPU 使用情况吗? 它是否接近 80-100%? 我使用 API 和“模型动物园”的模型检测视频流的对象时,GPU 使用率非常低。

我遇到同样的问题。

我们部署了deepFM模型并正常在线工作。 预测时间为10〜20ms。

但是我们最近仅添加了3个新功能。 预测时间花费高达500〜600ms。

我们检查模型文件的大小(与之前的模型相同)。 缓慢的原因只是tf服务预测。

最后,我们正在为此奋斗!!!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM