首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tf.keras.layers和tf.layers的区别是什么?

tf.keras.layers和tf.layers的区别是什么?
EN

Stack Overflow用户
提问于 2018-06-28 18:35:11
回答 3查看 8.8K关注 0票数 12

tf.keras.layers和tf.layers的区别是什么?

它们都有Conv2d,它们提供不同的输出吗?

如果将它们混合(类似于一个隐藏层中的tf.keras.layers.Conv2d,在下一个隐藏层中使用tf.layers.max_pooling2d),会有什么好处吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-02-16 00:46:22

自从TensorFlow 1.12以来,tf.layers仅仅是tf.keras.layers的包装器。

有几个例子:

卷积tf.layers只是继承了卷积tf.keras.layers,请参阅源代码这里

代码语言:javascript
复制
@tf_export('layers.Conv2D')
class Conv2D(keras_layers.Conv2D, base.Layer):

所有tf.layers也是如此,例如:

代码语言:javascript
复制
@tf_export('layers.Dense')
class Dense(keras_layers.Dense, base.Layer):

通过将Keras集成到TensorFlow中,维护几个不同的层实现是没有意义的。tf.keras正在成为TensorFlow事实上的高级API,因此tf.layers现在只是tf.keras.layers的包装器。

票数 22
EN

Stack Overflow用户

发布于 2018-06-28 18:43:10

tf.keras.layers.Conv2d是tensorflow-keras层,而tf.layers.max_pooling2d是tensorflow‘本地层’。

您不能在Keras模型中直接使用本机层,因为它将丢失Keras所需的某些属性。

但是,如果将本机层封装在tensorflow-keras Lambda层中,则可以使用本机层。下面链接到这方面的文档。

docs/python/tf/keras/层/Lambda

票数 10
EN

Stack Overflow用户

发布于 2018-06-28 19:23:05

tf.layers模块是Tensorflow尝试创建类似API的Keras,而tf.keras.layers是一个兼容性包装器。实际上,大多数实现都引用tf.layers,例如,tf.keras.layers.Dense继承了核心实施

代码语言:javascript
复制
@tf_export('keras.layers.Dense')
class Dense(tf_core_layers.Dense, Layer):
  # ...

因为tf.keras兼容性模块是单独签入Tensorflow回购的,所以它可能缺少Keras实际提供的内容。我会直接使用Keras或tf.layers,但不一定要混合它们。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51089334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档