ResNet

残差结构

在这里插入图片描述
为了方便对比,这里左图输入以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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值