现在,TensorFlow 1.1已经支持使用tf.contrib.keras
接口的Keras了。如果我打算使用TF后端和Keras,应该使用哪一个?
tf.contrib.keras
版本与常规Keras发布版有何不同?(是否涉及到内部数据结构的TF特定优化)如果我使用其中之一,是否能从同时使用Keras和TensorFlow Core中受益?
还是说,tf.contrib.keras
只是将Keras的相同代码库复制到不同的命名空间下吗?
现在,TensorFlow 1.1已经支持使用tf.contrib.keras
接口的Keras了。如果我打算使用TF后端和Keras,应该使用哪一个?
tf.contrib.keras
版本与常规Keras发布版有何不同?(是否涉及到内部数据结构的TF特定优化)如果我使用其中之一,是否能从同时使用Keras和TensorFlow Core中受益?
还是说,tf.contrib.keras
只是将Keras的相同代码库复制到不同的命名空间下吗?
tf.keras
(以前称为tf.contrib.keras
)是一个使用/专门针对tensorflow实现的keras 2。它托管在tensorflow代码库上,并且与官方代码库有不同的代码库(最后一次提交在tf-keras
分支中追溯到2017年5月)。
通常,如果您的代码使用任何特定于tensorflow的代码,则可以使用tf.keras
更简单,例如提供输入的tf.data.*
或在tensorboard中进行可视化的tf.summary.*
。(有些人甚至建议不要使用带有TF的参考Keras实现,因为它偶尔会出现与此工具包的问题)。
另一方面,如果您计划积极维护一个框架无关的代码,则只能使用keras自己的软件包。
如果您不太关心框架无关性但不使用特定于tensorflow的代码,则我可能会建议您选择tf.keras
并开始使用特定于tensorflow的代码,尤其是tf.data
,在我看来这是一个改变游戏规则的东西。
编辑
我参加了Chollet关于TF2的演讲(无法在网上找到录音),他基本上说,除了TF之外的框架支持最终将停止,并且Keras的未来发展将仅在tf.keras
中进行。
tf.keras
,并将Keras保留给那些难以迁移的遗留项目——这是Keras的未来选择。最近François Chollet推文建议使用tf.keras。
我们建议您将Keras代码切换到tf.keras。
Theano和CNTK已经停止开发。与此同时,作为Keras后端,它们仅占Keras使用量的不到4%。其他96%的用户(其中超过一半已经在tf.keras上)更适合使用tf.keras。
Keras的开发重点将放在tf.keras上。
重要的是,我们将寻求在keras-team / keras中启动tf.keras的独立GitHub存储库,以使第三方人员更轻松地进行贡献。
https://github.com/fchollet/keras/issues/5299#issuecomment-278166426
tf.contrib.keras
还是import keras
? - Olivier Lalonde
tf.data
管道是一个被低估的宝石。它允许您使用标准的TensorFlow操作编写自己的数据加载器和增强,并且它将在GPU上与图执行并行运行非常高效。据我所知,没有其他框架提供这种效率、灵活性和简单性的混合。 - P-Gn