耗时的 Tensorflow C++会话>运行 - 用于实时推理的图像
Time Consuming Tensorflow C++ Session->Run - Images for Real-time Inference
[CPU上的Tensorflow(TF)]我正在使用GitHub [label_image/main.cc]为C TF推理提供的骨架代码,以运行我在Python中创建的冷冻模型。该模型是带有两个隐藏层的FC NN。
在我当前项目的C 代码中,我为每个图像(8x8像素)运行NN的冷冻分类器。对于每个示例,一个会话 ->运行呼叫大约需要0.02秒,这在我的应用程序中很昂贵,因为我可以运行64000个样本。
当我发送一批1560个样本时,会话 ->运行呼叫大约需要0.03秒。
这些时间测量是否正常 ->运行呼叫?从C 端,我是否应该发送冷冻模型的图像批次而不是单个样本?从Python的末端,是否有优化技巧来减轻这种瓶颈?有没有办法在C 中同时进行会话 - 呼叫?
环境信息
操作系统:LinuxCuda和Cudnn的安装版本:n/a
您尝试了其他哪些尝试的解决方案?
- 我使用CPU的优化指令集安装了TF,但这似乎并没有给我提供大量的时间,请在Stackoverflow中节省大量时间
- 统一了我创建的图表的会话。
编辑
看来Matmul是瓶颈 - 任何建议如何改进?
我应该使用'Optimize_for_Inference.py'脚本来进行冷冻图?
如何以高精度测量python的时间?
用于进食8x8样品并获得Python的时间轴
喂食8x8批次并获得python
在记录中,我做了两件事,大大提高了应用程序的速度:
- 编译了TF以在我的机器的优化ISA上工作。
- 将批处理应用于我的数据样本。
如果您对我的答案有疑问,请随时在这里发表评论。
相关文章:
- Ctrl + 不适用于在 Visual Studio 中运行该程序
- 运行时检查失败 #0 用于运行时重新编译
- Android NDK:用于第三方Java库的静态或共享C++运行时
- 用于本地网络运行的客户端服务器体系结构
- 是否可以在运行时调用用于选择要调用的用户定义文本的逻辑?
- 在运行时将更改的环境变量应用于 QApplication
- 如何使用 Turbo C++并行运行两个功能,一个用于键盘,一个用于鼠标?
- qt并发没有用于调用"运行"的匹配函数
- 用于在运行时选择变量的 C++ 预处理器指令
- 未知大小的数组作为类成员,用于在运行时(对象创建时间)创建数组的对象
- 指定在用户固定我的应用程序时用于运行应用程序的命令参数
- 为什么我的Arduino代码用于运行蓝牙控制的机器人,障碍物传感器无法正常工作
- 用于使用可选输入文件运行 C++ 的 VIM 映射
- QWebView 用于在桌面应用程序中运行 javascript (D3) - 当 HTML 更改时重新加载速度很慢
- 张量流错误:执行器无法创建内核。没有注册'Snapshot' 适用于 GPU 设备的 OpKernel 运行图像标签示例
- 在构建之前,如何使Cmake在构建之前运行Python脚本,以生成用于构建中的项目的文件
- C DLL通过C#UWP应用程序中的Win运行时组件适用于ARM,但对于X86/X64不适用于
- 与虚拟破坏者相比,Shared_PTR的运行时开销用于子类破坏
- 如何使用于 catch2 测试和项目运行的 cmake 目标更具可扩展性和合理性?
- 耗时的 Tensorflow C++会话>运行 - 用于实时推理的图像