Tensorflow深度学习模型推理是否比keras更快

时间:2019-06-24 12:54:33

标签: tensorflow keras deep-learning

我正在使用tensorRT API来优化使用keras构建的U-NET模型。优化后的结果还不够好,所以我正在考虑在Tensorflow中制作相同的模型,因为Keras是高端API,也许推理速度很慢。 所以我的问题是,与keras模型相比,在张量流中构建相同的模型是否会改善推断。 tensorrt是否比keras更好地优化了tensorflow模型。

我做了一些研究,但没有发现关于张量流和keras中相同模型的推理速度的任何信息。

2 个答案:

答案 0 :(得分:0)

据我测试,两者之间没有显着差异(对于Keras来说可能只是很小的开销)。

从keras切换到tensorflow将无法获得您期望的更好的推理时间。我曾与TensorRT一起工作过,大多数问题来自以下事实:并非所有层都受支持(用于转换/优化)。

确保整个管道Keras模型-TensorFlow模型-层优化-TensorRT的所有操作均使用相同版本的tensorflow完成。我建议通过tensorflow.keras而不是简单的keras训练模型。

此外,请确保使用正确的FP操作进行转换。 (FP32 / FP16 / INT8)。如果从标准(FP32)转换为INT8,则推理速度的最大收益将是。以我的经验,从FP32到FP16的转换不会明显加快。

语义分割是计算量最大的任务,因此不要期望在TX2上(例如使用TensorRT)部署非常快速的推理模型。

答案 1 :(得分:0)

Keras(在使用tf后端时)是一个构建tensorflow计算图的库。计算是在这些图上执行的,而不是直接由Keras执行的。除非您认为可以手动优化生成的图形,否则不会有任何性能差异。您可以使用tensorboard Keras回调在tensorboard中可视化tensorflow模型。然后确定您是否可以手动优化它。我会劝阻除ML研究人员和ML库开发人员以外的任何人采用这种方法。

如果问题是基于模型准确性/错误指标,而不是进行推理时的CPU / GPU周期;我认为转换为张量流不一定会改善模型。

如果您需要模型本身的帮助,也许您可​​以尝试用模型的描述来重新表达问题(如果它在公共数据集上运行,将真正有帮助)。

相关问题