提交 35fb8b0d 编写于 作者: M muli

fix typo

上级 b4c09a30
......@@ -9,7 +9,7 @@ ResNet [1] 成功增加跨层的数据线路来允许梯度可以快速的到达
ResNet的基础块叫做残差块。如下图所示,它将层A的输出在输入给层B的同时跨过B,并和B的输出相加作为下面层的输入。它可以看成是两个网络相加,一个网络只有层A,一个则有层A和B。这里层A在两个网络之间共享参数。在求梯度的时候,来自层B上层的梯度既可以通过层B也可以直接到达层A,从而使得层A可以更容易获取足够大的梯度来进行模型更新。
![残差(左)和它的分解(右)](../img/resnet.svg)
![残差(左)和它的分解(右)](../img/resnet.svg)
ResNet沿用了VGG全$3\times 3$卷积层设计。残差块里首先是两次有同样输出通道的$3\times 3$卷积层,每个卷积层后跟一个批量归一化层和ReLU激活层。然后我们将输入跳过这两个卷积层后直接加在最后的ReLU激活层前。这样的设计要求这两个卷积层的输出都保持跟输入形状一样来保证相加可以进行。如果想改变输出的通道数,我们则引入一个额外的$1\times 1$卷积层来将输入变换成需要的形状后再相加。
......@@ -26,11 +26,11 @@ from mxnet.gluon import nn
class Residual(nn.Block):
def __init__(self, num_channels, use_1x1conv=False, strides=1, **kwargs):
super(Residual, self).__init__(**kwargs)
self.conv1 = nn.Conv2D(num_channels, kernel_size=3, padding=1,
self.conv1 = nn.Conv2D(num_channels, kernel_size=3, padding=1,
strides=strides)
self.conv2 = nn.Conv2D(num_channels, kernel_size=3, padding=1)
if use_1x1conv:
self.conv3 = nn.Conv2D(num_channels, kernel_size=1,
self.conv3 = nn.Conv2D(num_channels, kernel_size=1,
strides=strides)
else:
self.conv3 = None
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册