我对Keras与其他TF Wrappers(如Tensorpack)的训练表现有疑问。
在a Q&A session期间,Keras的作者表示该软件包没有性能成本:
Keras提供了一种更简单,更快捷的方法来在TensorFlow中构建和训练模型,无需性能成本,因为模型仍然由同一TensorFlow引擎运行。
另一方面,Tensorpack github声称它比Keras快2倍,即使CNN很小:
Tensorpack培训师几乎总是比基于feed_dict的包装更快。即使在一个微小的CNN示例中,训练的速度也比同等的Keras代码快2倍。
所以现在我想知道以下内容:谁是对的? 在训练中,两倍对我来说非常重要。
答案 0 :(得分:10)
我是tensorpack的作者。 主要性能改进的原因在文档的输入管道页面中进行了总结:http://tensorpack.readthedocs.io/en/latest/tutorial/input-source.html 这些参数适用于单GPU培训案例。对于多GPU培训,我们可以提高性能,以匹配Google的基准代码。
@jdehesa的回答是不对的,我们从不使用TFRecord来读取数据(尽管它能够这样做,但我没有看到很多优势)。您可以通过纯Python阅读所有内容并获得此速度。
此外,2倍加速可能有点过时,我知道Keras在减少框架开销方面做了改进。