首先:这个问题与神经网络推理有关,而不是训练。
我发现,当在GPU(例如P100)上一遍又一遍地推断训练有素的神经网络时,使用Tensorflow的计算能力利用率未达到100%,而是达到了约70%。如果不必将图像传输到GPU,也是如此。因此,该问题必须与计算并行化中的约束条件联系起来。我的最佳猜测是:
Tensorflow 只能利用达到一定级别的GPU并行化功能。 (同样,与TensorRT模型相同的模型的利用率更高)。在这种情况下,问题是:这样做的原因是什么?
固有的神经网络结构和随后的几层避免了更高的使用率。因此,问题不在于框架的开销,而在于神经网络的一般设计。在这种情况下,问题是:对此有什么限制?
以上两者兼而有之。
感谢您对这个问题的想法!
答案 0 :(得分:1)
为什么对一张图像运行神经网络预测时,为什么GPU利用率会达到100%?
GPU利用率是以时间为单位的(例如1秒)。这意味着,当神经元网络算法在此时间单位过去之前(例如0.5秒内)结束时,GPU的其余时间可能会被其他程序使用或根本不使用。如果其他程序均未使用GPU,那么您将无法达到100%。