你必须要知道CNN模型:ResNet残差网络
创始人
2024-04-03 05:31:13
0

相关资料

  • ResNet原始论文:https://arxiv.org/pdf/1512.03385.pdf
  • 我的wps论文笔记:Deep Residual Learning for Image Recognition
    在这里插入图片描述
  • 李沐视频:残差网络 ResNet【动手学深度学习v2】
  • 知乎:ResNet网络层分析

CNN模型ResNet的核心思想

ResNet解决了深度CNN模型难训练的问题。
ResNet-18,ResNet-34,ResNet-50都可以用做CV中的图片特征提取器。

  • https://zh.d2l.ai/chapter_convolutional-modern/resnet.html
    在这里插入图片描述

ResNet块

原始ResNet块(1x1卷积是通道数变化的作用)

果然是Conv->BN->ReLU的顺序。

在这里插入图片描述

我们也可以尝试各种架构的残差块,具体看实验效果,也学效果可能都差不多
在这里插入图片描述

ResNet:ResNet18, ResNet34, ResNet50…

ResNet在PyTorch的官方代码中共有5种不同深度的结构,深度分别为18、34、50、101、152(各种网络的深度指的是“需要通过训练更新参数”的层数,如卷积层,全连接层等),和论文完全一致。
在这里插入图片描述

ResNet-18代码

  • https://zh.d2l.ai/chapter_convolutional-modern/resnet.html

Pytorch官方代码

  • https://github.com/pytorch/vision/blob/main/torchvision/models/resnet.py
class BasicBlock(nn.Module):expansion: int = 1def __init__(self,inplanes: int,planes: int,stride: int = 1,downsample: Optional[nn.Module] = None,groups: int = 1,base_width: int = 64,dilation: int = 1,norm_layer: Optional[Callable[..., nn.Module]] = None,) -> None:super().__init__()if norm_layer is None:norm_layer = nn.BatchNorm2dif groups != 1 or base_width != 64:raise ValueError("BasicBlock only supports groups=1 and base_width=64")if dilation > 1:raise NotImplementedError("Dilation > 1 not supported in BasicBlock")# Both self.conv1 and self.downsample layers downsample the input when stride != 1self.conv1 = conv3x3(inplanes, planes, stride)self.bn1 = norm_layer(planes)self.relu = nn.ReLU(inplace=True)self.conv2 = conv3x3(planes, planes)self.bn2 = norm_layer(planes)self.downsample = downsampleself.stride = stridedef forward(self, x: Tensor) -> Tensor:identity = xout = self.conv1(x)out = self.bn1(out)out = self.relu(out)out = self.conv2(out)out = self.bn2(out)if self.downsample is not None:identity = self.downsample(x)out += identityout = self.relu(out)return 

相关问题

问题1:Transformer中用的是ResNet吗?

不是的,Transformer用的只是残差的思想,只是把输入加到输出。而ResNet是把多个ResNet块堆叠起来的CNN模型,是用在CV领域的图片特征提取器。

问题2:ResNet为什么能训练出1000层的模型

  • 李沐: ResNet为什么能训练出1000层的模型

一句话:梯度反向传播时,加深网络时,改用乘法,而不是加法。

这样的好处:通常在靠近输入层的参数通常是比较难训练的,因为拿到的梯度比较小。引入ResNet后,因为加入了跳转或者说高速公路,所以在算梯度的时候,底层W的梯度可以直接让loss从高速公路反传过来,就不需要一定把中间很多卷积层走完。所以说在一开始的时候,我最下面的层也会拿到比较大的梯度,就是因为我加入了高速公路。。。同样地,倒数第二层也可以通过它上层的高速公路得到参数更新。 因此无论你模型有多深,我下面的层都能做参数的更新。
在这里插入图片描述

附:CNN模型ResNet-18网络架构图

Conv(浅蓝)-> BN(白色) -> ReLU(深蓝)

在这里插入图片描述
在这里插入图片描述

相关内容

热门资讯

贵州百灵纾困纠纷背后:新希望与... 近日,苗药龙头贵州百灵(002424)与华创证券之间的纾困纠纷一直是市场关注的重点,自2025年8月...
*ST南置(002305)披露... 截至2025年12月29日收盘,*ST南置(002305)报收于2.23元,较前一交易日上涨0.9%...
原创 普... 俄罗斯总统弗拉基米尔·普京签署法律,禁止在俄罗斯境内执行外国刑事法院和国际法院的裁决 相关文件已在俄...
盒马购得面包发馊变臭!商家“仅... 面包发馊发臭 近日,市民刘女士向“新民帮侬忙”反映,从盒马鲜生购入的日式面包,竟然发馊发臭!然而事发...
当年龄不再是“免罚金牌”,彰显... 文/九派新闻特约评论员 舒圣祥 明年1月1日起,新修订的《治安管理处罚法》即将正式施行。新法专门新增...
2026年1月1日起施行!“被... 2025年新修订的治安管理处罚法将于2026年1月1日起施行,针对新修订的内容中与市民生活息息相关的...
“车企起诉电池企业第一案”:2... 编者按: 极氪起诉欣旺达这场官司,无论最终迎来怎样的判决,都注定会为整个行业留下一笔深刻的警示财富。...
逃缴1.09亿美元关税!深圳货... 可以说2025是税务大年,卖家不仅要扛住国内申报的节奏,还得适应一件更现实的事:跨境这门生意,账目和...
青岛榜样|奋战公益诉讼一线,诠... “说是检察官,其实我们更像户外工作者,经常跋山涉水、穿梭于田野乡间,哪里有公益受损和群众需求,哪里就...
双星新材(002585)披露市... 截至2025年12月29日收盘,双星新材(002585)报收于6.82元,较前一交易日上涨1.04%...