第一个数据点的Tensorflow推断运行时间高,后续数据点的运行时间低

第一个数据点的Tensorflow推断运行时间高,后续数据点的运行时间低,tensorflow,deep-learning,object-detection,object-detection-api,pre-trained-model,Tensorflow,Deep Learning,Object Detection,Object Detection Api,Pre Trained Model,我正在使用TensorFlow的对象检测模块中的一个模型进行推理。我在同一个会话中循环我的测试映像并执行sess.run()。但是,在分析这些运行时,我意识到第一次运行的时间总是比后续运行的时间要长 我找到了一个答案,解释了为什么会发生这种情况,但没有解决办法 我正在Intel i7 CPU上部署对象检测推断管道。一个session.run()的时间为1,2,3,第四个图像的显示类似(以秒为单位): 只是我所尝试过的背景: 我尝试使用TensorFlow给出的TFRecords方法作为示例。我

我正在使用TensorFlow的对象检测模块中的一个模型进行推理。我在同一个会话中循环我的测试映像并执行sess.run()。但是,在分析这些运行时,我意识到第一次运行的时间总是比后续运行的时间要长

我找到了一个答案,解释了为什么会发生这种情况,但没有解决办法

我正在Intel i7 CPU上部署对象检测推断管道。一个session.run()的时间为1,2,3,第四个图像的显示类似(以秒为单位):

只是我所尝试过的背景:

  • 我尝试使用TensorFlow给出的TFRecords方法作为示例。我希望它能工作得更好,因为它不使用feed_dict。但由于涉及到更多的I/O操作,我不确定它是否理想。我尝试在不写入磁盘的情况下使其工作,但在图像编码方面总是出现一些错误

  • 我尝试使用TensorFlow数据集来提供数据,但我不确定如何提供输入,因为在推断过程中,我需要为图形中的“image tensor”键提供输入。关于如何使用它为冻结的图形提供输入,有什么想法吗

任何帮助都将不胜感激


TLDR:为了部署目的,希望减少第一个映像的推断运行时间

尽管我已经看到第一个推论需要更长的时间,但显示的差异(84对1.5)似乎有点难以置信。您是否也在计算加载模型的时间,在这个时间度量内?这可能是大时差的差异吗?拓扑结构是否如此复杂,因此可以证明时间差是合理的

我的建议是:

  • 尝试Openvino:查看您正在处理的拓扑是否在Openvino中受支持。由于OpenVino能够优化网络操作,因此它可以大大加快推理工作负载。此外,在大多数情况下,加载openvino模型所需的时间相对较低

  • 关于TFRecords方法,您是否可以分享确切的错误以及在什么阶段出现错误

  • 关于Tensorflow数据集,请检查&。关于图中的“图像张量”键,我希望您最初的推理管道能给您一些线索


  • 尽管我已经看到第一个推论需要更长的时间,但所显示的差异(84对1.5)似乎有点难以置信。您是否也在计算加载模型的时间,在这个时间度量内?这可能是大时差的差异吗?拓扑结构是否如此复杂,因此可以证明时间差是合理的

    我的建议是:

  • 尝试Openvino:查看您正在处理的拓扑是否在Openvino中受支持。由于OpenVino能够优化网络操作,因此它可以大大加快推理工作负载。此外,在大多数情况下,加载openvino模型所需的时间相对较低

  • 关于TFRecords方法,您是否可以分享确切的错误以及在什么阶段出现错误

  • 关于Tensorflow数据集,请检查&。关于图中的“图像张量”键,我希望您最初的推理管道能给您一些线索

  • 1. 84.7132628
    2. 1.495621681
    3. 1.505012751
    4. 1.501652718