ResNet模型——pytorch实现

论文传送门:Deep Residual Learning for Image Recognition 

ResNet的出发点:

根据以往经验,模型网络层数越深,模型性能越好。但实际上,在网络层数达到一定深度时,模型的性能会随着层数的增加而不断降低。

作者分析,这可能由两个原因导致:

①深层网络容易导致梯度爆炸梯度消失

②深层网络存在模型退化问题。

为解决这两个问题,作者引入Batch Normalization层Residual结构

Residual结构:

①特征x经过多个ConvBN(ReLU)层,得到F(x);

②特征x不进行任何计算,得到恒等映射的x;

③F(x)+x,经过ReLU得到最终的输出。

ResNet34的结构:

不断堆叠Residual结构,当Residual结构实现下采样(特征图尺寸减半)时,shortcut边的x需要经过1x1Conv实现通道数的变化(图中用虚线表示)。

不同规模的ResNet:

 注意,ResNet18、34和ReNet50、101、152所使用的Residual结构有所不同。

import torch
import torch.nn as nn


class BasicBlock(nn.Module):  # 定义残差块,resnet18、resnet34使用此残差块
    expansion = 1  # 残差操作维度变化倍数

    def __init__(self, in_channel, out_channel, stride=1, downsample=None):  # 初始化方法
        super(BasicBlock, self).__init__()  # 继承初始化方法

        self.conv1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CV_Peach

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值