3D平均池化层
keras.layers.AveragePooling3D(pool_size=(3, 2, 3),
strides=None,
padding='valid',
data_format=None)
参数详解
- pool_size: 池化窗口大小,表示在三个维度上的下采样因子
- strides: 池化步长,默认值等于
pool_size
- padding: '
VALID
' 或 'SAME
','VALID
'表示无填充,'SAME
'表示用0填充
- data_format: 表示输入张量的维度顺序,默认为 [batch, dim1, dim2, dim3, channel], 如对分辨率为720×720视频(假设为连续6帧彩色图像)进行池化,batch_size设为64,则输入向量的维度为 [64, 6, 720, 720, 3],池化层会在dim1, dim2, dim3这三个维度上进行下采样
示例
from tensorflow.keras.layers import AveragePooling3D
import tensorflow as tf
import numpy as np
# 定义一个3D平均池化层
pool = AveragePooling3D(pool_size=(3, 2, 3),
strides=None,
padding='valid',
data_format=None)
# 生成一个维度为[64, 6, 720, 720, 3]的矩阵
x = np.random.random((64, 6, 720, 720, 3))
# 转成tensor类型,第一个维度64表示batch
# numpy中的数据类型和tensorflow中的数据类型完全兼容,所以这一步可以省略
x = tf.convert_to_tensor(x)
print(x.shape) # [64, 6, 720, 720, 3]
# 进行3D平均池化
y = pool(x)
print(y.shape) # [64, 2, 360, 240, 3]