mxnet复现ResNet-18

本文介绍了如何用mxnet复现ResNet-18模型,详细解析了ImageNet架构和残差块的概念,指出通过快捷连接实现残差映射,使网络更易于优化。ResNet-18包含18层,其中残差块是关键组成部分。
摘要由CSDN通过智能技术生成

ImageNet架构。

构建块显示在括号中(也可看图5),以及构建块的堆叠数量。下采样通过步长为2的conv3_1, conv4_1和conv5_1执行在这里插入图片描述

残差块

我们通过引入深度残差学习框架解决了退化问题。我们明确地让这些层拟合残差映射,而不是希望每几个堆叠的层直接拟合期望的基础映射。形式上,将期望的基础映射表示为H(x),我们将堆叠的非线性层拟合另一个映射F(x):=H(x)−x。原始的映射重写为F(x)+x。我们假设残差映射比原始的、未参考的映射更容易优化。在极端情况下,如果一个恒等映射是最优的,那么将残差置为零比通过一堆非线性层来拟合恒等映射更容易。

公式F(x)+x可以通过带有“快捷连接”的前向神经网络来实现。快捷连接是那些跳过一层或更多层的连接。快捷连接简单地执行恒等映射,并将其输出添加到堆叠层的输出。恒等快捷连接既不增加额外的参数也不增加计算复杂度。整个网络仍然可以由带有反向传播的SGD进行端到端的训练,并且可以使用公共库(例如,Caffe [19])轻松实现,而无需修改求解器。
在这里插入图片描述

ResNet-18网络结构:

其中的Residual为残差块
每个Sequential模块里有4个卷积层(不计算 1×1 卷积层),加上最开始的卷积层和最后的全连接层,共计18层

Sequential(
  (0): Conv2D(1 -> 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3))
  (1): BatchNorm(axis=1, eps=1e-05, momentum=0.9, fix_gamma=False, use_global_stats=False, in_channels=64)
  (2): Activation(relu)
  (3): MaxPool2D(size=(3, 3), stride=(2, 2), padding=(1, 1), ceil_mode=False, global_pool=False, pool_type=max, layout=NCHW)
  (4): Sequential(
    (0): Residual(
      (conv1): Conv2D(64 -> 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
      (conv2): Conv2D(64 -> 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
      (bn1): BatchNorm(axis=1, eps=1e-05, momentum=0.9, fix_gamma=False, use_global_stats=False, in_channels=64)
      (bn2): BatchNorm(axis=1, eps=1e-05, momentum=0.9, fix_gamma=False, use_global_stats=False, in_channels=64)
    )
    (1): Residual(
      (conv1): Conv2D(64 -> 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
      (conv2): Conv2D(64 -> 64, kernel_size=(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值