Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
d2l-zh
提交
19d62e05
D
d2l-zh
项目概览
OpenDocCN
/
d2l-zh
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
d2l-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
19d62e05
编写于
9月 01, 2018
作者:
A
Aston Zhang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
till residudual block
上级
94d12f7f
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
4 addition
and
4 deletion
+4
-4
chapter_convolutional-neural-networks/googlenet.md
chapter_convolutional-neural-networks/googlenet.md
+1
-1
chapter_convolutional-neural-networks/resnet.md
chapter_convolutional-neural-networks/resnet.md
+3
-3
未找到文件。
chapter_convolutional-neural-networks/googlenet.md
浏览文件 @
19d62e05
...
...
@@ -99,7 +99,7 @@ net = nn.Sequential()
net.add(b1, b2, b3, b4, b5, nn.Dense(10))
```
GoogLeNet模型的计算复杂,而且不如VGG那样便于修改通道数。本节里我们将输入高宽从224降到96来
加速
计算。下面演示各个块之间的输出的形状变化。
GoogLeNet模型的计算复杂,而且不如VGG那样便于修改通道数。本节里我们将输入高宽从224降到96来
简化
计算。下面演示各个块之间的输出的形状变化。
```
{.python .input n=7}
X = nd.random.uniform(shape=(1, 1, 96, 96))
...
...
chapter_convolutional-neural-networks/resnet.md
浏览文件 @
19d62e05
# 残差网络(ResNet)
上一
小节介绍的批量归一化层对网络中间层的输出做归一化,使得训练时数值更加稳定和收敛更容易。但对于深层网络来说,还有一个问题困扰着训练:在进行梯度反传计算时,我们从误差函数(顶部)开始,朝着输入数据方向(底部)逐层计算梯度。当我们将层串联在一起时,根据链式法则每层的梯度会被乘在一起,这样便导致梯度数值以指数衰减。最后,在靠近底部的层只得到很小的梯度,对应的权重更新量也变小,使得他们的收敛缓慢
。
上一
节介绍的批量归一化层对网络各层的中间输出做标准化,从而使训练时数值更加稳定。但对于深度模型来说,还有一个问题困扰着模型的训练。回忆
[
“正向传播、反向传播和计算图”
](
../chapter_deep-learning-basics/backprop.md
)
一节。在反向传播时,我们从输出层开始,朝着输入层方向逐层计算权重参数和中间变量的梯度。当我们将这些层串联在一起时,靠近输入层的权重梯度是该层与输出层之间每层中间变量梯度的乘积。假设这些梯度的绝对值小于1,靠近输入层的权重参数只得到很小的梯度,因此这些参数也很难被更新
。
ResNet成功地通过增加跨层的数据线路来允许梯度快速地到达底部层,从而避免这一情况
[1]。这一节我们将介绍ResNet的工作原理。
针对上述问题,ResNet增加了跨层的数据线路,从而允许中间变量的梯度快速向输入层传递,并更容易更新靠近输入层的模型参数
[1]。这一节我们将介绍ResNet的工作原理。
## 残差块
ResNet的基础块叫做残差块 (
Residual B
lock) 。如图5.9所示,它将层A的输出在输入给层B的同时跨过B,并和B的输出相加作为下面层的输入。它可以看成是两个网络相加,一个网络只有层A,一个则有层A和B。这里层A在两个网络之间共享参数。在求梯度的时候,来自层B上层的梯度既可以通过层B也可以直接到达层A,从而让层A更容易获取足够大的梯度来进行模型更新。
ResNet的基础块叫做残差块 (
residual b
lock) 。如图5.9所示,它将层A的输出在输入给层B的同时跨过B,并和B的输出相加作为下面层的输入。它可以看成是两个网络相加,一个网络只有层A,一个则有层A和B。这里层A在两个网络之间共享参数。在求梯度的时候,来自层B上层的梯度既可以通过层B也可以直接到达层A,从而让层A更容易获取足够大的梯度来进行模型更新。
![
残差块(左)和它的分解(右)。
](
../img/resnet.svg
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录