CNN+VGG+ResNet

本文围绕CNN卷积神经网络展开,介绍了其卷积层、池化层、全连接层的结构与功能,如池化层可减小特征空间维度。还阐述了flatten()函数的降维作用,以及经典网络VGG和ResNet的特点,包括VGG的层结构和ResNet的残差结构、Batch Normalization等。

目录

 CNN卷积神经网络

卷积层

池化层

全连接层

flatten()是对多维数据的降维函数。

VGG

ResNet

Batch Normalization(BN)

CNN卷积神经网络

卷积层

池化层

有两种广泛使用的池化操作——平均池化(average pooling)和最大池化(max pooling),其中最大池化是两者中使用最多的一个操作,其效果一般要优于平均池化。池化层用于在卷积神经网络上减小特征空间维度,但不会减小深度。

全连接层

在全连接层中,我们将最后一个卷积层的输出展平,并将当前层的每个节点与下一层的另一个节点连接起来

全连接,此时需要把特征图平铺成一维向量这步操作称为Flatten,压平后输入特征大小为32*16*16=8192,之后做一次全连接对大小为8192特征变换到大小为128的特征,再依次做两次全连接分别得到64,10

flatten()是对多维数据的降维函数。

flatten(),默认缺省参数为0,也就是说flatten()和flatte(0)效果一样。

python里的flatten(dim)表示,从第dim个维度开始展开,将后面的维度转化为一维.也就是说,只保留dim之前的维度,其他维度的数据全都挤在dim这一维。

VGG

VGG由5层卷积层、3层全连接层、1层softmax输出层构成,层与层之间使用maxpool(最大化池)分开,所有隐藏层的激活单元都采用ReLU函数。

卷积层参数表示为“conv(感受野大小)-通道数”,例如con3-64,表示使用3x3的卷积核,通道数为64

手撕 CNN 经典网络之 VGGNet(理论篇) - 知乎

ResNet

在ResNet网络中有如下几个亮点:

1、提出residual结构(残差结构),并搭建超深的网络结构(突破1000层)

2、使用Batch Normalization加速训练(丢弃dropout)

当堆叠到一定网络深度时,就会出现两个问题。

1、梯度消失或梯度爆炸。

2、退化问题(degradation problem)。

Batch Normalization(BN)

Batch Normalization(BN)超详细解析-优快云博客

如果batch size为m,则在前向传播过程中,网络中每个节点都有m个输出,所谓的Batch Normalization,就是对该层每个节点的这m个输出进行归一化再输出.

反向传播

### 比较 CNNResNetVGG 架构及其差异 #### 卷积神经网络 (CNN) 卷积神经网络是一种专门设计用于处理具有网格结构的数据(如图像)的深层神经网络架构。其核心组件包括卷积层、池化层和全连接层。通过这些层次,CNN 能够自动提取特征并进行分类。 - **卷积层**:负责局部感受野内的特征检测。 - **池化层**:减少空间维度的同时保留重要信息。 - **全连接层**:将前一层输出展平后计算加权求和,并应用非线性激活函数来生成最终预测[^3]。 ```python import torch.nn as nn class SimpleCNN(nn.Module): def __init__(self): super(SimpleCNN, self).__init__() self.conv1 = nn.Conv2d(3, 64, kernel_size=3) self.pool = nn.MaxPool2d(kernel_size=2, stride=2) self.fc1 = nn.Linear(64 * 54 * 54, 10) def forward(self, x): x = self.pool(F.relu(self.conv1(x))) x = x.view(-1, 64 * 54 * 54) x = F.relu(self.fc1(x)) return x ``` #### VGG 网络 VGG 是一种经典的深度卷积神经网络架构,以其简单而统一的设计著称。该模型主要由多个连续堆叠的小型滤波器组成,通常为 \(3 \times 3\) 的大小,这使得它能够更深入地构建网络而不增加过多参数数量。此外,VGG 使用了非常深的层数(例如 VGG-16),从而提高了表达能力[^1]。 ```python from torchvision import models vgg_model = models.vgg16(pretrained=True) print(vgg_model) ``` #### Residual Networks (ResNet) 残差网络解决了传统深层网络训练过程中遇到的梯度消失问题。通过引入跳跃连接机制——即所谓的“捷径”,允许输入直接传递给后续层,这样可以更容易地优化更深的网络结构。实验表明,在 COCO 数据集上使用 ResNet-101 替代 VGG-16 可以带来显著性能提升,特别是在 mAP 度量方面获得了约 6% 的绝对增益[^2]。 ```python resnet_model = models.resnet101(pretrained=True) print(resnet_model) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值