Keras学习笔记二:卷积神经网络相关层

一、卷积层

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,为卷积的步长。如为单个整数,则表示在各个空间维度的相同步长。任何不为1strides均与任何不为1dilation_rate均不兼容

·       padding:补0策略,为“valid”,“same”“valid”代表只进行有效的卷积,即对边界数据不处理。“same”代表保留边界处的卷积结果,通常会导致输出shape与输入shape相同。

·       activation:激活函数,为预定义的激活函数名(参考激活函数),或逐元素(element-wise)的Theano函数。如果不指定该参数,将不会使用任何激活函数(即使用线性激活函数:a(x)=x

·       dilation_rate:单个整数或由两个个整数构成的list/tuple,指定dilatedconvolution中的膨胀比例。任何不为1dilation_rate均与任何不为1strides均不兼容。

·       data_format:字符串,“channels_first”“channels_last”之一,代表图像的通道维的位置。该参数是Keras 1.x中的image_dim_ordering“channels_last”对应原本的“tf”“channels_first”对应原本的“th”。以128x128RGB图像为例,“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,channelsrowscols)的4D张量

‘channels_last’模式下,输入形如(samplesrowscolschannels)的4D张量

注意这里的输入shape指的是函数内部实现的输入shape,而非函数接口应指定的input_shape,请参考下面提供的例子。

输出shape

‘channels_first’模式下,为形如(samplesnb_filter,new_rows, new_cols)的4D张量

‘channels_last’模式下,为形如(samplesnew_rows,new_colsnb_filter)的4D张量

输出的行列数可能会因为填充方法而改变

2. ZeroPadding2D层:对2D输入(如图片)的边界填充0,以控制卷积以后特征图的大小

keras.layers.convolutional.ZeroPadding2D(padding=(1,1),data_format=None)

参数

·       padding:整数tuple,表示在要填充的轴的起始和结束处填充0的数目,这里要填充的轴是轴3和轴4(即在'th'模式下图像的行和列,在‘channels_last’模式下要填充的则是轴23

·       data_format:字符串,“channels_first”“channels_last”之一,代表图像的通道维的位置。该参数是Keras 1.x中的image_dim_ordering“channels_last”对应原本的“tf”“channels_first”对应原本的“th”。以128x128RGB图像为例,“channels_first”应将数据组织为(3,128,128),而“channels_last”应将数据组织为(128,128,3)。该参数的默认值是~/.keras/keras.json中设置的值,若从未设置过,则为“channels_last”

输入shape

‘channels_first’模式下,形如(sampleschannelsfirst_axis_to_padsecond_axis_to_pad)的4D张量

‘channels_last’模式下,形如(samplesfirst_axis_to_padsecond_axis_to_pad, channels)的4D张量

输出shape

‘channels_first’模式下,形如(sampleschannelsfirst_paded_axissecond_paded_axis)的4D张量

‘channels_last’模式下,形如(samplesfirst_paded_axissecond_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,代表在两个方向(竖直,水平)上的下采样因子,如取(22)将使图片在两个维度上均变为原长的一半。为整数意为各个维度值相同且为该数字。

·       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”。以128x128RGB图像为例,“channels_first”应将数据组织为(3,128,128),而“channels_last”应将数据组织为(128,128,3)。该参数的默认值是~/.keras/keras.json中设置的值,若从未设置过,则为“channels_last”

输入shape

‘channels_first’模式下,为形如(sampleschannels, rowscols)的4D张量

‘channels_last’模式下,为形如(samplesrows, colschannels)的4D张量

输出shape

‘channels_first’模式下,为形如(sampleschannels,pooled_rows, pooled_cols)的4D张量

‘channels_last’模式下,为形如(samplespooled_rows,pooled_colschannels)的4D张量

2.AveragePooling2D层:为空域信号施加平均值池化

keras.layers.pooling.AveragePooling2D(pool_size=(2,2),strides=None, padding='valid',data_format=None)

参数

·       pool_size:整数或长为2的整数tuple,代表在两个方向(竖直,水平)上的下采样因子,如取(22)将使图片在两个维度上均变为原长的一半。为整数意为各个维度值相同且为该数字。

·       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”。以128x128RGB图像为例,“channels_first”应将数据组织为(3,128,128),而“channels_last”应将数据组织为(128,128,3)。该参数的默认值是~/.keras/keras.json中设置的值,若从未设置过,则为“channels_last”

输入shape

‘channels_first’模式下,为形如(sampleschannels, rowscols)的4D张量

‘channels_last’模式下,为形如(samplesrows, colschannels)的4D张量

输出shape

‘channels_first’模式下,为形如(sampleschannels,pooled_rows, pooled_cols)的4D张量

‘channels_last’模式下,为形如(samplespooled_rows,pooled_colschannels)的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”。以128x128RGB图像为例,“channels_first”应将数据组织为(3,128,128),而“channels_last”应将数据组织为(128,128,3)。该参数的默认值是~/.keras/keras.json中设置的值,若从未设置过,则为“channels_last”

输入shape

‘channels_first’模式下,为形如(sampleschannels, rowscols)的4D张量

‘channels_last’模式下,为形如(samplesrows, colschannels)的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”。以128x128RGB图像为例,“channels_first”应将数据组织为(3,128,128),而“channels_last”应将数据组织为(128,128,3)。该参数的默认值是~/.keras/keras.json中设置的值,若从未设置过,则为“channels_last”

输入shape

‘channels_first’模式下,为形如(sampleschannels, rowscols)的4D张量

‘channels_last’模式下,为形如(samplesrows, colschannels)的4D张量

输出shape

形如(nb_samples, channels)2D张量

 


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值