TensorFlow 1.1+中的Keras和tf.keras有什么区别?
keras
tensorflow
7
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相同代码库的副本,但是在不同的命名空间下?

参考资料:
Stack Overflow
收藏
评论
共 2 个回答
高赞 时间 活跃

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的选择。

收藏
评论

最好将Keras理解为API规范,而不是特定的代码库。实际上,向前推进时,将有两种Keras规范的独立实现:内部的TensorFlow(可作为tf.keras使用),以纯TensorFlow编写,并且与所有TensorFlow功能完全兼容;以及外部的多后端,同时支持Theano和TensorFlow(将来可能还会有更多的后端)。

https://blog.keras.io/introducing-keras-2.html

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号