介绍
二维卷积层,即对图像进行卷积。该层对 二维 输入进行滑动窗卷积。
卷积核计算公式
https://www.malaoshi.top/show_1EF53TtDvZ4C.html
初始化
tf.keras.layers.Conv2D(
filters,
kernel_size,
strides=(1, 1),
padding='valid',
data_format=None,
dilation_rate=(1, 1),
activation=None,
use_bias=True,
kernel_initializer='glorot_uniform',
bias_initializer='zeros',
kernel_regularizer=None,
bias_regularizer=None,
activity_regularizer=None,
kernel_constraint=None,
bias_constraint=None,
input_shape=None,
**kwargs
)
参数
filters:卷积核数量
kernel_size:卷积核大小。
- 单个整数,则表示在各个空间维度的相同长度。
- 两个整数构成的list/tuple,卷积核的宽度和长度
strides:步长,单个整数或由两个整数构成的list/tuple。如为单个整数,则表示在各个空间维度的相同步长。任何不为1的strides均与任何不为1的dilation_rate均不兼容
padding:默认“valid”
- “valid”:对边界数据不填充,卷积后图片会变小
- “same”:在图片周围填充0,根据公式:
(img_size-kernel_size +2*P)/S + 1,不受卷积核大小影响,受步长影响
activation:激活函数,为预定义的激活函数名(参考激活函数),或逐元素(element-wise)的Theano函数。如果不指定该参数,将不会使用任何激活函数(即使用线性激活函数:a(x)=x)
input_shape:输入形状。该层作为 第一层时,应提供
input_shape参数,否则 不会 初始化权重dilation_rate:单个整数或由两个个整数构成的list/tuple,指定dilated convolution中的膨胀比例。任何不为1的dilation_rate均与任何不为1的strides均不兼容。
data_format:字符串,“channels_first”或“channels_last”之一,代表图像的通道维的位置。该参数是Keras 1.x中的image_dim_ordering,“channels_last”对应原本的“tf”,“channels_first”对应原本的“th”。以128x128的RGB图像为例,“channels_first”应将数据组织为(3,128,128),而“channels_last”应将数据组织为(128,128,3)。该参数的默认值是~/.keras/keras.json中设置的值,若从未设置过,则为“channels_last”。
use_bias:布尔值,是否使用偏置项
kernel_initializer:权值初始化方法,为预定义初始化方法名的字符串,或用于初始化权重的初始化器。
参看:https://www.malaoshi.top/show_1EF4Avx1LqEv.htmlbias_initializer:权值初始化方法,为预定义初始化方法名的字符串,或用于初始化权重的初始化器。
参看:https://www.malaoshi.top/show_1EF4Avx1LqEv.htmlkernel_regularizer:施加在权重上的正则项,为Regularizer对象
bias_regularizer:施加在偏置向量上的正则项,为Regularizer对象
activity_regularizer:施加在输出上的正则项,为Regularizer对象
kernel_constraints:施加在权重上的约束项,为Constraints对象
bias_constraints:施加在偏置上的约束项,为Constraints对象
注意:
当使用该层作为 第一层时,应提供input_shape参数,否则 不会 初始化权重
主要方法
get_weights()
返回list类型:
第1个元素是 weight,即:权重。
形状一般是4维:
- 第1、2个维度等于 参数 kernel_size,即:卷积核尺寸
- 第3个维度 等于 输入图片的 通道数
- 第4个维度等于 参数 filters ,即:卷积核数量
第二个元素是 bias,即:偏执量。一维数组,其长度等于 参数 filters ,即:卷积核数量
感谢:
https://keras-cn.readthedocs.io/en/latest/layers/convolutional_layer/