ResNet
创始人
2025-05-28 03:18:32

残差结构

在这里插入图片描述
为了方便对比,这里左图输入以256(论文为64)来计算。

左图:3x3x256x256+3x3x256x256=1179648

右图:1x1x256x64+3x3x64x64+1x1x64x256=69632

卷积计算:out=(in-k+2p) / s + 1

使用残差结构可以极大减少计算量。

整体网络结构

在这里插入图片描述
下采样由conv3_1,conv4_1,conv5_1完成,步幅为2。

对restnet18、34而言:
在这里插入图片描述在这里插入图片描述

主分支和shortcut的输出特征矩阵shape必须相同。

由于conv2_x的输入是56x56x64,输出也是56x56x64,输入输出没有变化,可以直接相加。即实边的残差结构。

对于conv3_1来说,输入是56x56x64,输出为28x28x128,输入输出发生了变化,则对应的卷积核数量为128,步幅为2,这样可以与上一层的conv2_x进行相加。即虚边的残差结构。

后续的conv4_1和conv5_1也是类似操作。

这里第一个卷积的卷积核数量为128,最后一个1x1的卷积的卷积核数量是128,保持不变。

对restnet50-152而言:
在这里插入图片描述在这里插入图片描述

主分支和shortcut的输出特征矩阵shape必须相同。

由于conv2_x的输入是56x56x256,输出也是56x56x256,输入输出没有变化,直接相加。即实边的残差结构。

虚线残差结构的主分支上,第一个1x1卷积步幅是2,第二个3x3卷积步幅是1,但在pytorch官方实现中,第一个卷积1x1卷积步幅是1,第二个3x3卷积步幅是2。这样能够在imagenet的top1上提升约0.5%的准确率。

详细参考:https://ngc.nvidia.com/catalog/model-scripts/nvidia:resnet_50_v1_5_for_pytorch

这里第一个卷积的卷积核数量为128,最后一个1x1的卷积的卷积核数量是512,即4倍。

Batch Normalization

BN的目的是使我们的一批(batch)的特征图满足均值为0,方差为1的分布规律。

正向传播统计得到均值和方差;反向传播训练得到超参数
在这里插入图片描述
在这里插入图片描述
https://blog.csdn.net/qq_37541097/article/details/104434557

相关内容

热门资讯

【西街观察】巨头拼抢AI不为“... AI助理“千问App” 在11月17日正式宣布公测。继AI基建、淘宝闪购后,这是阿里今年宣布的又一个...
两部日本电影,暂缓上映 据消息,11月17日,原定近期上映的日本影片《蜡笔小新:炽热的春日部舞者们》《工作细胞》均宣布暂缓上...
光线传媒:已在和几个重点地区进... 证券之星消息,光线传媒(300251)11月17日在投资者关系平台上答复投资者关心的问题。 投资者提...
齐风坊项目收官在即,“永不落幕... 11月16日,位于济南起步区鹊山生态文化区的齐风坊项目已全面进入最后冲刺阶段,施工人员正紧锣密鼓地进...
原创 上... 走在上海的街头,黄皮肤黑头发的身影随处可见,很少有人会特意留意他们的国籍。但鲜为人知的是,这座城市里...