既然TensorFlow 1.1支持Keras API tf.contrib.keras,如果我打算使用带有TF后端的Keras,我应该使用哪一个?
是tf.contrib.keras版本以任何方式比普通Keras分布有什么不同?(想到TF特定的内部数据结构优化).如果我使用其中一种,那么将Keras和TensorFlow Core一起使用会有什么好处吗?
或者tf.contrib.keras只是与Keras相同的代码库的副本,但在不同的命名空间下?
P-G*_*-Gn 29
tf.keras(以前tf.contrib.keras)是专门用/ for tensorflow实现的keras 2的实现.它托管在tensorflow repo上,并且具有与官方repo不同的代码库(tf-keras分支中的最后一次提交可以追溯到2017年5月).
根据经验,如果您的代码使用任何特定于张量流的代码,请说明tf.data.*提供输入或tf.summary.*在张量板中进行可视化,只需使用即可tf.keras.(有些人甚至可能会建议不要使用TF的参考Keras实现,因为它与此工具包偶尔会出现问题).
另一方面,如果您计划主动维护与框架无关的代码,则使用keras自己的软件包是您唯一的选择.
如果您不太关心与框架无关但不使用特定于张流的代码,我可能会建议您继续tf.keras使用特定于tensorflow的代码,尤其是.tf.data在我看来,这是一个改变游戏规则的人.
小智 12
Keras最好被理解为API规范,而不是特定的代码库.实际上,将会有两个独立的Keras规范实现:内部TensorFlow,可用作tf.keras,用纯TensorFlow编写,与所有TensorFlow功能深度兼容,外部多后端支持Theano和TensorFlow(可能在未来甚至更多的后端).
https://blog.keras.io/introducing-keras-2.html
小智 -4
如果有两个 github 存储库,您将如何将拉取请求同步到 tf.keras 和此存储库?是否会有人将一个存储库中的更改应用到另一个存储库中?
代码库会有所不同,因此无需复制拉取请求。对于 API 更改,您可以向 API 规范本身发送 PR,并且 API 规范的更改将在所有代码库中复制。
https://github.com/fchollet/keras/issues/5299#issuecomment-278166426