tf.keras
(以前是tf.contrib.keras
)是keras 2的一种实现,仅通过/用于张量流实现。它托管在tensorflow回购中,并且具有与正式回购不同的代码库( tf-keras
分支中的最后一次提交可追溯到2017年5月 )。
作为一个经验法则,如果你的代码中使用任何具体tensorflow代码,说什么都tf.data.*
提供输入或tf.summary.*
在tensorboard可视化,这是简单的只是使用tf.keras
。 (由于该工具包偶尔会出现问题,有些人甚至建议不要将参考Keras实现与TF 一起使用 )。
另一方面,如果您打算积极维护与框架无关的代码,则使用keras自己的软件包是您的唯一选择。
如果您不太关心与框架无关的内容,但不使用特定于tensorflow的代码,我可能会建议您使用tf.keras
并开始使用特定于tensorflow的代码,特别是。我认为tf.data
会改变游戏规则。
编辑
我参加了Chollet关于TF2的演讲(找不到在线录音),他在其中基本上说,除TF之外的其他框架的支持最终会下降,并且tf.keras
未来发展将完全在tf.keras
。
从我所看到的情况来看,这已经发生了,因为近来Keras的提交流越来越少。
这很有意义,因为到目前为止,唯一流行的DL框架是pytorch,而Keras不支持。将Keras代码与张量流保持“不可知论”(它所支持的唯一主要框架)的意义越来越小。
所以今天,我的答案是默认情况下使用tf.keras
,并将tf.keras
用于难以移植的旧项目-这是tf.keras
的选择。
0
现在TensorFlow 1.1在
tf.contrib.keras
下支持tf.contrib.keras
API,如果我打算将Keras与TF后端一起使用,应该使用哪一个?tf.contrib.keras
版本与常规tf.contrib.keras
发行版有什么不同吗? (想到内部数据结构的TF特定优化)。如果同时使用Keras和TensorFlow Core,是否有任何好处?还是
tf.contrib.keras
只是与tf.contrib.keras
相同代码库的副本,但是在不同的命名空间下?