1. 池化
池化操作用于减少卷积神经网络中特征数据量,一般有最大值池化和均值池化。
最大值池化可提取图片纹理,均值池化可保留背景特征。
tensorflow描述池化
1) 最大值池化
tf.keras.layers.MaxPool2D(
pool_size=池化核尺寸。若是正方形则写核长整数,否则写成(核高h,核宽w)
strides=池化步长。步长整数,或者写成(纵向步长h,横向步长w),默认为pool_size
padding=‘valid’ or ‘same’。使用全零填充是’same’,不使用是’valid’(默认)
)
2) 均值池化
tf.keras.layers.AveragePooling2D(
pool_size=池化核尺寸。若是正方形则写核长整数,否则写成(核高h,核宽w)
strides=池化步长。步长整数,或者写成(纵向步长h,横向步长w),默认为pool_size
padding=‘valid’ or ‘same’。使用全零填充是’same’,不使用是’valid’(默认)
)
代码例子:
model = tf.keras.models.Sequential([
...
MaxPool2D(pool_size=(2, 2), strides=2, padding='same') # 池化层
...
}
2. 舍弃(Dropout)
在神经网络训练时,将一部分神经元按照一定概率从神经网络中暂时舍弃。神经网络使用时,被舍弃的神经元恢复连接。
tensorflow描述舍弃
tf.keras.layers.Dropout(舍弃的概率)
代码例子:
model = tf.keras.models.Sequential([
...
Dropout(0.2) # dropout层
...
}