耗时的 Tensorflow C++ Session->运行 - 用于实时推理的图像
Time Consuming Tensorflow C++ Session->Run - Images for Real-time Inference
[Tensorflow (TF) CPU]
我正在使用 GitHub [label_image/main.cc] 为 C++ TF 推理提供的骨架代码,以便 运行 我在 Python 中创建的冻结模型。该模型是具有两个隐藏层的 FC NN。
在我当前项目的 C++ 代码中,我 运行 NN 的每个图像(8x8 像素)的冻结分类器。对于每个样本,Session->运行 调用大约需要 0.02 秒,这在我的应用程序中是昂贵的,因为我可以有 64000 个样本,我必须 运行。
当我发送一批 1560 个样本时,Session->运行 调用大约需要 0.03 秒。
会话->运行 调用的这些时间测量是否正常?从 C++ 端,我应该发送我的冻结模型批量图像而不是单个样本吗?从 Python 端,是否有优化技巧来缓解该瓶颈?有没有办法在 C++ 中同时进行 Session-运行 调用?
环境信息
操作系统:Linux
已安装的 CUDA 和 cuDNN 版本:N/A
您还尝试过哪些其他尝试的解决方案?
- 我使用针对 CPU 的优化指令集安装了 TF,但它似乎并没有给我在 Whosebug
中提到的大量时间节省
- 为我创建的图形统一了会话。
编辑
似乎 MatMul 是瓶颈 -- 有什么改进建议吗?
我应该为我的冻结图使用 'optimize_for_inference.py' 脚本吗?
如何高精度地测量Python中的时间?
Timeline for feeding an 8x8 sample and getting the result in Python
Timeline for feeding an 8x8 batch and getting the result in Python
郑重声明,我做了两件事显着提高了我的应用程序速度:
- 编译 TF 以在我机器的优化 ISA 上工作。
- 对我的数据样本应用批处理。
如果您对我的回答有疑问,请随时在这里发表评论。
[Tensorflow (TF) CPU] 我正在使用 GitHub [label_image/main.cc] 为 C++ TF 推理提供的骨架代码,以便 运行 我在 Python 中创建的冻结模型。该模型是具有两个隐藏层的 FC NN。
在我当前项目的 C++ 代码中,我 运行 NN 的每个图像(8x8 像素)的冻结分类器。对于每个样本,Session->运行 调用大约需要 0.02 秒,这在我的应用程序中是昂贵的,因为我可以有 64000 个样本,我必须 运行。
当我发送一批 1560 个样本时,Session->运行 调用大约需要 0.03 秒。
会话->运行 调用的这些时间测量是否正常?从 C++ 端,我应该发送我的冻结模型批量图像而不是单个样本吗?从 Python 端,是否有优化技巧来缓解该瓶颈?有没有办法在 C++ 中同时进行 Session-运行 调用?
环境信息
操作系统:Linux 已安装的 CUDA 和 cuDNN 版本:N/A
您还尝试过哪些其他尝试的解决方案?
- 我使用针对 CPU 的优化指令集安装了 TF,但它似乎并没有给我在 Whosebug 中提到的大量时间节省
- 为我创建的图形统一了会话。
编辑
似乎 MatMul 是瓶颈 -- 有什么改进建议吗?
我应该为我的冻结图使用 'optimize_for_inference.py' 脚本吗?
如何高精度地测量Python中的时间?
Timeline for feeding an 8x8 sample and getting the result in Python
Timeline for feeding an 8x8 batch and getting the result in Python
郑重声明,我做了两件事显着提高了我的应用程序速度:
- 编译 TF 以在我机器的优化 ISA 上工作。
- 对我的数据样本应用批处理。
如果您对我的回答有疑问,请随时在这里发表评论。