现在TensorFlow 1.1支持tf.contrib.keras
下的Keras API,如果我打算使用带有TF后端的Keras,我应该使用哪一个?
tf.contrib.keras
版本与常规Keras版本有何不同? (想到TF特定的内部数据结构优化)。如果我使用Keras和TensorFlow Core,是否有任何好处?
或者tf.contrib.keras
只是与Keras相同的代码库的副本,但在不同的命名空间下?
答案 0 :(得分:25)
tf.keras
(以前称为tf.contrib.keras
)是使用/ for tensorflow专门实现的keras 2的实现。它托管在tensorflow repo上,并且具有与官方repo不同的代码库(tf-keras
分支dates back from May 2017中的最后一次提交。)
根据经验,如果您的代码使用任何特定于张量流的代码,请在tf.data.*
中为提供输入说明任何内容,或者在张量板中显示tf.summary.*
,可以更简单地使用{{1 }}。 (由于occasional problems it has with this toolkit),有些人甚至可能会建议使用TF引用Keras实现 not 。
另一方面,如果您计划主动维护与框架无关的代码,请使用keras'自己的包装是您唯一的选择。
如果您不太关心与框架无关但不使用特定于张流的代码,我可能会建议使用tf.keras
并开始使用特定于张流的代码,特别是。 tf.keras
在我看来是一个改变游戏规则的人。
答案 1 :(得分:11)
Keras最好被理解为API规范,而不是具体的 代码库。事实上,前进将会有两个独立的 Keras规范的实现:内部TensorFlow, 以tf.keras的形式出现,用纯TensorFlow编写并深入 兼容所有TensorFlow功能和外部功能 多后端支持Theano和TensorFlow(很可能 未来甚至更多的后端。)
答案 2 :(得分:1)
最近的FrançoisChollet tweet建议使用 tf.keras 。
我们建议您将Keras代码切换为tf.keras。
Theano和CNTK都在开发中。同时,作为凯拉斯 后端,它们只占Keras使用量的不到4%。其他96% 用户(其中一半以上已经使用tf.keras)更好 与tf.keras一起使用。
Keras的开发将重点放在tf.keras上。
重要的是,我们将寻求开始自己开发tf.keras 为了使其成为独立的GitHub存储库,位于keras-team / keras 第三党成员更容易贡献。
答案 3 :(得分:-2)
如果有两个github存储库,你将如何同步pull 请求tf.keras和这个存储库?会有人吗? 将一个存储库中的更改应用于另一个存储库?
代码库会有所不同,因此不需要复制 拉请求。对于API更改,您可以将PR发送到API规范 本身,API规范的更改将在所有内容中复制 代码库。
https://github.com/fchollet/keras/issues/5299#issuecomment-278166426