我需要实时使用一些对象检测算法(在行驶时会检测到东西)。 到目前为止,我已经成功地在GPU PC上将YOLO-v3与pytorch一起使用,效果很好。
在笔记本电脑的〜1.6GHz CPU上是否可以使用一种算法? 我当前的网络正在以每帧〜5秒的速度在CPU上进行检测,这对于实时性来说太慢了...
预先感谢
答案 0 :(得分:2)
您可以采取许多措施来获得良好的CPU性能。 (我应该在评论中添加它,但是它太长了。因此,请在此处发布。)
通过量化感知训练或权重训练后量化进行模型量化,可以确保将浮点32或float64权重转换为uint8,以确保在低端计算机上更快地执行,而准确性下降极小或没有。
如您所知,您的模型位于PyTorch中,因此Model Quantization是在PyTorch 1.4.0中引入的,并在1.4.1中添加了具有改进功能的其他功能
OpenVINO工具包允许开发人员通过与应用程序逻辑集成的高级C ++推理引擎API部署预训练的深度学习模型。
它包括两个组件,即模型优化器和推理引擎,以及CPU,GPU和异构插件,这些插件可加快对Intel(R)CPU和Intel(R)处理器图形的深度学习推理。
因此,您可以将模型移植到OpenVino,以便在CPU上进行更快的推断。您可以在OpenVino here中引用几个链接(在我的存储库的自述文件中)。还有link1和link2。
您可以像在pip版本中一样构建PyTorch回购表单源,多处理和多线程中存在一些问题,这会影响实际性能。 (对于TensorFlow则不存在)
其他方法:
您可以尝试将模型转换为TensorFlow,看看它是否可以改善对CPU的推断。有时看到它可以最大化性能。您可以参考链接here以获得更多信息。