tf.keras.layers.MaxPool?D函数

最大池化层通常用于对数据进行降采样,去除冗余信息、对特征进行压缩。

1、tf.keras.layers.MaxPool1D函数
函数原型
tf.keras.layers.MaxPool1D(pool_size=2,
						  strides=None,
						  padding='valid',
						  data_format='channels_last',
						  **kwargs
)
函数说明

在这里插入图片描述
参数pool_size表示池化窗口的大小,参数strides表示移动步长,默认为None,表示和pool_size的大小一样。

注意,padding参数的含义和卷积层的padding参数的含义有点不一样,当padding为VALID,也就是无填充时,输出张量的大小为(输入张量的大小-pool_size + 1 )/ strides,当padding为SAME时,输出张量的大小为输入张量的大小 / strides

2、tf.keras.layers.MaxPool2D函数
函数原型
tf.keras.layers.MaxPool2D(pool_size=(2, 2),
						  strides=None,
						  padding='valid',
						  data_format=None,
						  **kwargs
)
函数说明

在这里插入图片描述
二维最大池化的过程如上图所示。其中输入矩阵大小为4×4,pool_size为2×2,strides为2,padding方式为无填充,得到的输出矩阵大小为2×2。可以看出,池化后的矩阵相对于输入矩阵,仅仅保留了特征值较高的一部分。也就是说,池化操作降低了图像的采样率。

这里的参数pool_size是一个元组(2, 2),表示池化窗口的大小为2×2。

3、tf.keras.layers.MaxPool3D函数
函数原型
tf.keras.layers.MaxPool3D(pool_size=(2, 2, 2),
						  strides=None,
						  padding='valid',
						  data_format=None,
						  **kwargs
)
函数说明

在这里插入图片描述
三维池化层使用场景一般是多帧(单/多通道)的frame数据(视频帧),且输出也是多帧,依次对连续k帧的整个通道同时执行池化操作;

函数各参数的含义与MaxPool2D、MaxPool1D各参数的含义类似。

`tf.keras.layers.Dense` 和 `tf.compat.v1.layers.dense` 都是用来创建全连接层 (Dense Layer) 的API,但是它们属于TensorFlow的不同版本和模块,在使用上有一些关键的区别: ### 1. API风格不同 - **`tf.keras.layers.Dense`**: 这是TensorFlow Keras API的一部分,采用的是面向对象的设计模式。你需要先实例化一个 `Dense` 层的对象,并将其作为模型构建的一部分添加到Sequential模型或者其他类型的容器中。 ```python dense_layer = tf.keras.layers.Dense(units=64, activation='relu') model.add(dense_layer) ``` - **`tf.compat.v1.layers.dense`**: 这是在TensorFlow 1.x 中的一种函数式API调用方式,直接用于操作张量(tensor),返回一个新的经过该层处理后的张量。它是兼容性的接口之一,旨在帮助从旧版TF迁移到新版本。 ```python output_tensor = tf.compat.v1.layers.dense(input_tensor, units=64, activation=tf.nn.relu) ``` ### 2. 默认的行为差异 - 在Keras API (`tf.keras.layers.Dense`) 下,默认情况下会自动处理输入形状、权重初始化等细节;而V1版本(`tf.compat.v1.layers.dense`) 则更贴近底层,需要开发者自行管理更多的配置项如指定input_shape参数或者显式地定义变量作用域(scope)等。 ### 3. 兼容性和性能优化 - 使用最新的Keras API通常可以获得更好的集成支持以及未来版本的持续更新维护保障; - 而`compat.v1`系列是为了保持向后兼容性提供的过渡方案,适用于那些正在逐步升级其代码库但仍需保留部分老逻辑的应用场景。 综上所述,如果你刚开始学习或编写新的项目建议优先考虑使用`tf.keras.layers.Dense`这种方式更为简洁明了并且能够充分利用高层级框架带来的便利特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不负韶华ღ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值