一、卷积层
1. conv2D层:
keras.layers.convolutional.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
参数。
例如input_shape = (128,128,3)
代表128*128的彩色RGB图像(data_format='channels_last'
)
参数
· filters:卷积核的数目(即输出的维度)
· kernel_size:单个整数或由两个整数构成的list/tuple,卷积核的宽度和长度。如为单个整数,则表示在各个空间维度的相同长度。
· strides:单个整数或由两个整数构成的list/tuple,为卷积的步长。如为单个整数,则表示在各个空间维度的相同步长。任何不为1的strides均与任何不为1的dilation_rate均不兼容
· padding:补0策略,为“valid”,“same”。“valid”代表只进行有效的卷积,即对边界数据不处理。“same”代表保留边界处的卷积结果,通常会导致输出shape与输入shape相同。
· activation:激活函数,为预定义的激活函数名(参考激活函数),或逐元素(element-wise)的Theano函数。如果不指定该参数,将不会使用任何激活函数(即使用线性激活函数:a(x)=x)
· dilation_rate:单个整数或由两个个整数构成的list/tuple,指定dilatedconvolution中的膨胀比例。任何不为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:权值初始化方法,为预定义初始化方法名的字符串,或用于初始化权重的初始化器。参考initializers
· bias_initializer:权值初始化方法,为预定义初始化方法名的字符串,或用于初始化权重的初始化器。参考initializers
· kernel_regularizer:施加在权重上的正则项,为Regularizer对象
· bias_regularizer:施加在偏置向量上的正则项,为Regularizer对象
· activity_regularizer:施加在输出上的正则项,为Regularizer对象
· kernel_constraints:施加在权重上的约束项,为Constraints对象
· bias_constraints:施加在偏置上的约束项,为Constraints对象
输入shape
‘channels_first’模式下,输入形如(samples,channels,rows,cols)的4D张量
‘channels_last’模式下,输入形如(samples,rows,cols,channels)的4D张量
注意这里的输入shape指的是函数内部实现的输入shape,而非函数接口应指定的input_shape
,请参考下面提供的例子。
输出shape
‘channels_first’模式下,为形如(samples,nb_filter,new_rows, new_cols)的4D张量
‘channels_last’模式下,为形如(samples,new_rows,new_cols,nb_filter)的4D张量
输出的行列数可能会因为填充方法而改变
2. ZeroPadding2D层:对2D输入(如图片)的边界填充0,以控制卷积以后特征图的大小
keras.layers.convolutional.ZeroPadding2D(padding=(1,1),data_format=None)
参数
· padding:整数tuple,表示在要填充的轴的起始和结束处填充0的数目,这里要填充的轴是轴3和轴4(即在'th'模式下图像的行和列,在‘channels_last’模式下要填充的则是轴2,3)
· 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”。
输入shape
‘channels_first’模式下,形如(samples,channels,first_axis_to_pad,second_axis_to_pad)的4D张量
‘channels_last’模式下,形如(samples,first_axis_to_pad,second_axis_to_pad, channels)的4D张量
输出shape
‘channels_first’模式下,形如(samples,channels,first_paded_axis,second_paded_axis)的4D张量
‘channels_last’模式下,形如(samples,first_paded_axis,second_paded_axis, channels)的4D张量
二、池化层
1.MaxPooling2D层:为空域信号施加最大值池化
keras.layers.pooling.MaxPooling2D(pool_size=(2,2),strides=None,padding='valid',data_format=None)
参数
· pool_size:整数或长为2的整数tuple,代表在两个方向(竖直,水平)上的下采样因子,如取(2,2)将使图片在两个维度上均变为原长的一半。为整数意为各个维度值相同且为该数字。
· strides:整数或长为2的整数tuple,或者None,步长值。
· border_mode:‘valid’或者‘same’
· 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”。
输入shape
‘channels_first’模式下,为形如(samples,channels, rows,cols)的4D张量
‘channels_last’模式下,为形如(samples,rows, cols,channels)的4D张量
输出shape
‘channels_first’模式下,为形如(samples,channels,pooled_rows, pooled_cols)的4D张量
‘channels_last’模式下,为形如(samples,pooled_rows,pooled_cols,channels)的4D张量
2.AveragePooling2D层:为空域信号施加平均值池化
keras.layers.pooling.AveragePooling2D(pool_size=(2,2),strides=None, padding='valid',data_format=None)
参数
· pool_size:整数或长为2的整数tuple,代表在两个方向(竖直,水平)上的下采样因子,如取(2,2)将使图片在两个维度上均变为原长的一半。为整数意为各个维度值相同且为该数字。
· strides:整数或长为2的整数tuple,或者None,步长值。
· border_mode:‘valid’或者‘same’
· 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”。
输入shape
‘channels_first’模式下,为形如(samples,channels, rows,cols)的4D张量
‘channels_last’模式下,为形如(samples,rows, cols,channels)的4D张量
输出shape
‘channels_first’模式下,为形如(samples,channels,pooled_rows, pooled_cols)的4D张量
‘channels_last’模式下,为形如(samples,pooled_rows,pooled_cols,channels)的4D张量
3. GlobalMaxPooling2D层:为空域信号施加全局最大值池化
keras.layers.pooling.GlobalMaxPooling2D(dim_ordering='default')
参数
· 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”。
输入shape
‘channels_first’模式下,为形如(samples,channels, rows,cols)的4D张量
‘channels_last’模式下,为形如(samples,rows, cols,channels)的4D张量
输出shape
形如(nb_samples, channels)的2D张量
4. GlobalAveragePooling2D层:为空域信号施加全局平均值池化
keras.layers.pooling.GlobalAveragePooling2D(dim_ordering='default')
参数
· 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”。
输入shape
‘channels_first’模式下,为形如(samples,channels, rows,cols)的4D张量
‘channels_last’模式下,为形如(samples,rows, cols,channels)的4D张量
输出shape
形如(nb_samples, channels)的2D张量