TensorFlow 1.1+中Keras和tf.keras有什么区别?

时间:2017-05-19 11:29:30

标签: tensorflow keras

现在TensorFlow 1.1支持tf.contrib.keras下的Keras API,如果我打算使用带有TF后端的Keras,我应该使用哪一个?

tf.contrib.keras版本与常规Keras版本有何不同? (想到TF特定的内部数据结构优化)。如果我使用Keras和TensorFlow Core,是否有任何好处?

或者tf.contrib.keras只是与Keras相同的代码库的副本,但在不同的命名空间下?

4 个答案:

答案 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(很可能   未来甚至更多的后端。)

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

答案 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