实战:利用Pytorch复现Deep Residual Learning for Image Recognition中的 Resnet34

残差网络Resnet:Deep Residual Learning for Image Recognition 论文阅读笔记

  • 在学习了resnet的论文之后,为了便于理解,变想要复现文论中34层的resnet模型。

即以下这张图:

在这里插入图片描述
实际上,Resnet和VGGnet的骨干网络相差无几,只是深度上更胜后者,并且增加了恒等映射(identity mapping)。

在复现VGG16的时候,采用的是逐层搭建,显然在此处并不可行,一共34层,每层需要正则化和激活函数,工作量相当大。

首先我们先将34层分为3部分

  • 1 初始部分
  • 2-33 主体部分
  • 34 全连接部分

而主题部分根据通道的改变可以分为4个部分:

  • 2-7 64
  • 8-15 128
  • 16-27 256
  • 27-33 512

将每两层设置为Bottleneck:

class BottleNeck(nn.Module):
    def __init__(self,in_chanels,out_chanels,stride=1,downsample=False):
        super(BottleNeck,self).__init__()

        self.conv1=nn.Conv2d(in_chanels,out_chanels,kernel_size=3,padding=1,stride=stride)
        self.BN=nn.BatchNorm2d(out_chanels)
        self.ReLu=nn.ReLU(inplace=True)
        self.conv2=nn.Conv2d(out_chanels,out_chanels,kernel_size=3,padding=1,stride=1)
        self.downsample = downsample
        self.wi = nn.Sequential(
            nn.Conv2d(in_chanels,out_chanels,kernel_size=1,padding=0,stride=stride),
            nn.BatchNorm2d(out_chanels
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值