【发布时间】:2018-11-13 13:13:23
【问题描述】:
我已经为自定义对象检测训练了一个faster_rcnn_inception_resnet_v2_atrous_coco 模型(可用here)。
对于预测,我在图像上使用了对象检测演示 jupyter notebook file。还检查了每个步骤所消耗的时间,发现 sess.run 一直在占用时间。
但在 GPU 上预测 (3000 x 2000) 像素大小(大约 1-2 [MB] )的图像大约需要 25-40 [秒]。
谁能解决这里的问题?
我已经进行了分析,下载链接profiling file
链接到完整的profiling
系统信息:
使用 NVIDIA Tesla M60 GPU
- 操作系统平台和分发 - Windows 10
- TensorFlow 安装自 - 使用 pip
pip3 install --upgrade tensorflow-gpu - TensorFlow 版本 - 1.8.0
- Python 版本 - 3.6.5
- GPU/CPU - GPU
- CUDA/cuDNN 版本 - CUDA 9/cuDNN 7
【问题讨论】:
-
没问题,你的图片比平时使用的大很多(300x300到600x600左右)。所以自然会慢一些。
-
嗨 Matias Valdenegro,我也尝试过使用较小的图像(小于 600*600,从几 Kb 到最大 100 KB 大小),但预测大约需要 20 秒
-
即使在大图像上预测也应该非常快,因为在这里您只需应用函数(模型)。有两件事要检查:(1)确认 tensorflow 实际上是在使用 GPU(2)配置 tensorflow,遵循例如towardsdatascience.com/howto-profile-tensorflow-1a49fb18073d
-
顺便说一句,正如docs.microsoft.com/en-us/azure/virtual-machines/windows/… 所证明的,VM 默认没有安装驱动程序和 CUDA,所以除非你完成了这些步骤,否则你的 tensorflow 将在 CPU 上运行——它需要比在 CPU 上运行的时间长得多GPU。
-
这就是我们所需要的。分析信息清楚地表明您正在使用 GPU ......并且需要 1.5 秒 - 这是合理的。自己看看:drive.google.com/open?id=1CsrV6YkIyQ9KYtgoS6YLePxTgPXOxGmM 如果您转到 chrome://tracing/(假设您有 Chrome)并加载文件(您可能已经完成),您可以获得相同的图像。无论如何,阻止你的不是 tensorflow,或者至少数据是这样说的。我建议将其重构为脚本并运行分析:
python -m cProfile yourscript.py
标签: tensorflow machine-learning deep-learning object-detection