首先,我们将发布tf2.0中tf.keras.layers.Conv2D ()函数的官方文档,介绍每个参数的含义和用法。
TF.Keras.layers.conv2d(filters,kernel_size,strides=(1,padding='valid ',data_format=None,kernel kernel_regularizer=None,bias _ regullarizer kernel _ constraint=none,bias_constraint=None,**kwargs是否定义此函数
后面的多参数都是关键字参数(有等于符号的),都有默认值,不用写。 下面,我们逐一分析一下各参数的含义。1、函数的位置参数filters,
这是第一个参数,位置是固定的。 含义是过滤器的个数或卷积核心的个数。 这与卷积后的输出通道数相同。 例如,如果以下过滤器为5,则卷积输出的通道数(最后一位)为5
当filters卷积核数为8时,输出的通道数为8 2、函数的第二个位置参数 kernel_size,
卷积内核的大小通常为33或55。 这里,如[ 3,3 ]、[ 5,5 ]那样,用两个整数的组或列表表示。 如果height、width的纵横相同,则可以直接用1个整数表示。 例如,如果是3或5,则是卷积后的height、width
hight=width=(p-s )/strides 1,
这里输入形状为2020,卷积核为33,滑动步长为1,所以输出为[20-3]/1=18
其中,由于输入为2020、卷积核为55、滑动步长为22,所以输出形状为(20-5 )/2 ) 1向下舍入为8,
3、关键字参数strides=(1, 1),滑动步长,
默认的横向和纵向滑块都是1,它与上面的卷积核心size结合使用,用于计算输出的形状。
hight=width=(p-s )/strides 1,
4、关键字参数padding = “valid”,默认是边缘不填充,
这里只有两个取值,另一个取值为“same”,表示边由0填充。 如果填充=“same”,则输出形状为height=width=P/strides,并向上舍入。 如下图所示,
5 、关键字参数 data_format = ’ channels_first’,输入的数据格式,
这里只能取两个值: channels_first和channels_last。 也就是说,在输入的数据格式中,通道数是第一个还是最后一个,缺省值为channels_last,即在缺省输入数据格式中通道数是最后一个。
如果data_format='channels_first ',则输入和输出的形状格式如下
(batch_size、channels、height、width )即(图像数、通道数、长度、宽度)如下图所示。
6、关键字参数dalition_rate = (1,1)这个含义是卷积核的膨胀系数,
这里的作用是使卷积核形状膨胀,用0填充新位置。 新的卷积核尺寸和膨胀系数计算公式如下。
设原积核尺寸为s、膨胀系数为k,则膨胀后的卷积核的尺寸为
size=k(s-1 ) 1
7 、关键字参数activation = “relu”,此处的含义是激活函数,
相当于经过卷积输出后,经过一次激活函数后,一般的激活函数有relu、softmax、selu等
8、关键字参数use_bias =0 、1,偏置项,
此处的值是布尔值,0或1。 0意味着bias没有增加,1意味着有。
9 、后面的关键字参数一般不常用,
kernel_initializer :卷积核初始化、
bias_initializer :偏差值初始化、
kernel_regularizer :卷积核正则化
bias_regularizer :偏差归一化
activity_regularizer这个地方也是正则化的
kernel_constraint :卷积核约束
bias_constraint :偏差约束。
这些参数不常见,但、
10 、最后还有几个可选 的关键字参数,input_shape,
这是输入的形式,一般是4D。 (batch size,height,width,channels ),不用定义。 那是默认的输入形式。