我正在学习tf和keras。
我想尝试https://www.amazon.com/Deep-Learning-Python-Francois-Chollet/dp/1617294438/
,它似乎是用keras编写的。
将代码转换为tf.keras会很直接吗?
我对portability
代码并不感兴趣,而不是两者之间的真正区别。
答案 0 :(得分:2)
Keras Vs tf.keras的历史悠久而曲折。
Keras :Keras是由Google AI开发人员/研究人员Francois Chollet构建的高级(易于使用)API。用Python编写,能够在TensorFlow,CNTK或Theano等后端引擎之上运行。
TensorFlow :也是由Google为深度学习开发者社区开发的一个库,用于使深度学习应用程序可访问并可供公众使用。开源且可在GitHub上获得。
随着Keras v1.1.0的发布,Tensorflow成为默认的后端引擎。这意味着:如果您在系统上安装了Keras,那么您还将安装TensorFlow。
后来,在TensorFlow v1.10.0中,首次在tensorflow中引入了tf.keras子模块。 将Keras集成到TensorFlow中的第一步
随着Keras 2.3.0的发布,
请参阅FrançoisChollet的this推文,以使用tf.keras。
这意味着, 随处更改
来自
from keras.models import Sequential
from keras.models import load_model
收件人
from tensorflow.keras.models import Sequential
from tensorflow.keras.models import load_model
然后在requirements.txt中
tensorflow==2.3.0
*免责声明:如果您使用的是Keras的旧版本,则可能会产生冲突。在这种情况下,请执行pip uninstall keras
。
答案 1 :(得分:1)
tf.keras和keras之间的区别是该框架的Tensorflow特定增强。
keras
是一个API规范,描述了深度学习框架应如何实现与模型定义和培训相关的特定部分。
与框架无关,并支持不同的后端(Theano,Tensorflow等)
tf.keras
是Keras API规范的Tensorflow特定实现。它为该框架添加了对许多Tensorflow特定功能的支持,例如:完美支持tf.data.Dataset
作为输入对象,对急切执行的支持,...
在Tensorflow 2.0中,tf.keras
是默认设置,我强烈建议开始使用tf.keras
答案 2 :(得分:0)
在这一点上,tensorflow几乎完全采用了keras API,这有一个很好的理由-它简单,易用且易于学习,而“纯” tensorflow带有许多样板代码。是的,您可以使用tf.keras而不会出现任何问题,尽管您可能必须重新编写代码中的导入。例如
from keras.layers.pooling import MaxPooling2D
将变成:
from tensorflow.keras.layers import MaxPooling2D