目录
引入卷积感受野全零填充tensorflow描述卷积层函数tf.ketas.layers.conv2D
批标准化池化Poolingtf.keras.layers.MaxPool2D函数
舍弃 DropoutCNN总结Cifar10数据集搭建卷积网络经典卷积网络LeNetLeNet核心代码
AlexNetAlexNet核心代码
VGGNet 2014InceptionNet 2014InceptionNet核心实现
ResNet两个相加维度不同代码展示
总结
引入
全连接NN参数过多,待优化参数过多容易导致模型过拟合
卷积
输入特征图的额深度,卷积核的深度,输出特征图的深度 卷积计算相当于图像特征提取的方法
感受野
感受野数值相同 说明特征提取能力一样,那么选取参数少的。
全零填充
零填充可以使得输入特征图和输出特征图的维度相等。
tensorflow描述卷积层函数
tf.ketas.layers.conv2D
图中的BN表示批处理操作,如果后面接批处理操作的话,就先不激活。
批标准化
神经网络对0附近的数据更为敏感,随着网络的增加,特征数据会偏离0均值的情况,标准化可以是数据拉回以0为均值,1为标准差,把偏移的特征数据重新拉回到0附近。
批标准化,使得数值重新拉回到0附近,经过激活后的输出数值更加明显,提升了激活函数对输入数据的区分力。但是,这种简单的标准化使得特征数据完全满足标准正态分布,集中在激活函数中心的线性区域,使得激活函数丧失了非线性的特性。因此,在BN操作中为每个卷积核引入了两个可训练参数,在反向传播中也对该参数进行调整,这会优化特征数据分布的宽窄和偏移量,保证了网络的非线性表达力 BN层在卷积层和激活层之间,代码在中间加
池化Pooling
最大值池化可提取图片纹理均值池化可保留背景特征
tf.keras.layers.MaxPool2D函数
tf.keras.layers.AveragePooling2D
舍弃 Dropout
在神经网络训练时,将一部分神经元按照一定概率从神经网络中暂时舍弃。神经网络使用时,被舍弃的神经元回复链接
CNN总结
其实就是在神经网络之前,加上提取特征的步骤,而这里提取特征的步骤包括卷积、批标准化、激活、池化这几个步骤。所以 卷积就是特征提取器 就是CBAPD。C是卷积,B是批标准化,A是激活,P是池化,D是舍弃
Cifar10数据集
打印查看数据
搭建卷积网络
按照CBAPD写好,然后调用函数
经典卷积网络
LeNet
LeNet核心代码
AlexNet
AlexNet核心代码
VGGNet 2014
InceptionNet 2014
InceptionNet核心实现
精简实现
ResNet
前面都是单纯堆叠网络层数来提高性能,但是随着网络层数越来越多,错误率反而升高了。所以,作者认为单纯堆叠网络层数会使得网络退化,后边的特征丢失了前边特征的原本模样。 为防止退化,作者提出了ResNet块,有效缓解了神经网络模型堆叠,将输入特征恒等映射X和经过卷积非线性之后的F(X)进行对应元素值相加Inception和ResNet的叠加是不一样的
两个相加维度不同
代码展示
总结