https://tensorflow.google.cn/api_docs/python/tf/keras/layers/Conv2D
作用
tf.keras.layers.Conv2D 是一个2维卷积层(图像空间卷积)
这个层创建了一个卷积核,将输入卷积成输出张量。
定义
def __init__(self,
filters: Any,
kernel_size: Any,
strides: int = (1, 1),
padding: str = 'valid',
data_format: Any = None,
dilation_rate: int = (1, 1),
activation: Any = None,
use_bias: bool = True,
kernel_initializer: str = 'glorot_uniform',
bias_initializer: str = 'zeros',
kernel_regularizer: Any = None,
bias_regularizer: Any = None,
activity_regularizer: Any = None,
kernel_constraint: Any = None,
bias_constraint: Any = None,
**kwargs: Any) -> None
输入
当data_format=channels_last时,输入为四维张量 (samples, rows, cols, channels);
当data_format=channels_first时,输入为四维张量 (samples, channels, rows, cols)。
输出
当data_format=channels_last时,输出为四维张量 (samples, new_rows, new_cols, filters);
当data_format=channels_first时,输出为四维张量 (samples, filters, new_rows, new_cols)。
参数
input_shape
作为第一个层时,必须设置输入形状(忽略样本维度),例如input_shape=(128, 128, 3) for 128x128 表示128*128的RGB图片。
filters
卷积过滤器数量,int类型,必须,例如32,表示生成32个特征图
kernel_size
卷积窗口大小,int/tuple类型,必须,例如(3,3)表示宽为3高为3的滑动窗口,只传一个整数时表示宽和高都一样。
strides
卷积窗口移动步进,int/tuple类型,默认为(1,1)表示每次只滑动1个单元,只传一个整数表示宽和高的步进都一样,当取值不为1时,dilation_rate必须为1。
padding
取值为valid或者same,valid表示只取有效值, same表示填充以和原图保持相同大小。
data_format
输入数据格式,取值为channels_last或者channels_first。默认值为channels_last。
channels_last: 输入shape为(batch, height, width, channels)
channels_first:输入shape为(batch, channels, height, width)
dilation_rate
空洞卷积比例,int/tuple类型,默认值为(1,1),当取值不为1时,strides必须为1。
activation
激活函数,不传时默认为a(x)=x
use_bias
是否使用偏置向量,默认为True
kernel_initializer
卷积核初始化器,默认为glorot_uniform
bias_initializer
偏置向量初始化器,默认为zeros
kernel_regularizer
卷积核正则化函数
bias_regularizer
偏置向量正则化函数
activity_regularizer
输出结果正则化函数
kernel_constraint
卷积核约束函数
bias_constraint
偏置向量约束函数