tensorflow笔记第五讲CNN

tech2023-10-17  89

目录

引入卷积感受野全零填充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的叠加是不一样的

两个相加维度不同

代码展示

总结

最新回复(0)