时间消耗Tensorflow C ++会话 - >运行 - 用于实时推理的图像

时间:2017-03-09 17:15:04

标签: c++ image tensorflow real-time inference

[CPU上的Tensorflow(TF)] 我正在使用从GitHub [label_image / main.cc]为C ++ TF推断提供的框架代码,以便运行我在Python中创建的冻结模型。该模型是具有两个隐藏层的FC NN。

在我目前的项目C ++代码中,我为每个单独的图像(8x8像素)运行NN的冻结分类器。对于每个样本,Session-> Run调用大约需要0.02秒,这在我的应用程序中很昂贵,因为我可以运行64000个样本。

当我发送一批1560个样本时,Session-> Run调用大约需要0.03秒。

会话的这些时间测量是否正常 - >运行呼叫?从C ++端,我应该发送我的冷冻模型批量图像而不是单个样本吗?从Python端,是否有优化技巧来缓解这一瓶颈?有没有办法在C ++中同时进行Session-Run调用?

环境信息

操作系统:Linux 已安装的CUDA和cuDNN版本:N / A

您尝试了哪些其他尝试的解决方案?

  1. 我使用CPU的优化指令集安装了TF,但它似乎没有给我带来StackOverflow中提到的大量时间
  2. 统一我创建的图表的会话。
  3. 修改
    似乎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

1 个答案:

答案 0 :(得分:0)

为了记录,我做了两件事,大大提高了我的申请速度:

  1. 编译TF以处理我机器的优化ISA。
  2. 将批处理应用于我的数据样本。
  3. 如果您对我的回答有疑问,请随时在此发表评论。