【Tensorflow】卷积层(下)

【Tensorflow】卷积层下

6.池化

池化用于减少特征数据量,最大值池化可以提取图片纹理,均值池化可以保留背景特征。
最大值池化

tf.keras.layers.MaxPool2D(
		pool_size = 池化核尺寸,  #正方形写核长整数或(核高h,核宽w)
		strides = 池化步长,  #步长整数或纵向步长h,横向步长w,默认为pool_size
		padding = 'valid' or 'same'  #使用全零填充是same,不使用是valid(默认)
)

均值池化

tf.keras.layers.AveragePooling2D(
		pool_size = 池化核尺寸,  #正方形写核长整数或(核高h,核宽w)
		strides = 池化步长,  #步长整数或纵向步长h,横向步长w,默认为pool_size
		padding = 'valid' or 'same'  #使用全零填充是same,不使用是valid(默认)
)

调用实例

MaxPool2D(pool_size = (2,2), strides = 2, padding = 'same)

7.舍弃

为了缓解神经网络过拟合,在神经网络的训练过程中,常把隐藏层的部分神经元按照一定比例从神经网络中临时舍弃。在使用神经网络时,再把所有神经元恢复到神经网络中。TensorFlow中提供了Dropout函数,用于实现舍弃。
【Tensorflow】卷积层(下)_第1张图片
TensorFlow描述:

tf.keras.layers.Dropout(舍弃的概率)

调用实例

Dropout(0.2)  #括号里写神经元舍弃的比例,随机舍弃掉20%的神经元

8.卷积神经网络

借助卷积核提取特征后,送入全连接网络。
卷积神经网络的主要模块有五个:
卷积(Convolutional)、批标准化(Batch Normalize)、激活(Activation)、池化(Pooling)、全连接(Fully Connect)
卷积是什么? 卷积就是特征提取器,就是CBAPD

model = tf.keras.models.Sequential([
		Conv2D(filters = 6, kernel_size = (5,5), padding = 'same'),   # 卷积层,卷积核(5,5)
		BatchNormalization(),  # 批标准化
		Activation('relu'),  # 激活层
		MaxPool2D(pool_size = (2,2), strides = 2, padding = 'same'),  # 最大池化,池化窗口设置为(2,2)
		Dropout(0.2),  # 舍弃,以20%的比例随机舍弃神经元
)

9.Cifar10数据集

提供50000张3232像素点的十分类彩色图片和标签,用于训练;
提供10000张32
32像素点的十分类彩色图片和标签,用于测试。
十个分类分别为:

名称 标签
airplane 飞机 0
automobile 汽车 1
bird 鸟 2
cat 猫 3
deer 鹿 4
dog 狗 5
frog 青蛙 6
horse 马 7
ship 船 8
truck 卡车 9
导入cifar10数据集
cifar10 = tf.keras.datasets.cifar10
(x_train,y_train),(x_test,y_test) = cifar10.load_data()

在cifar10上进行的操作代码见下篇。

你可能感兴趣的:(Tensorflow,tensorflow,深度学习,cnn)