Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
d2l-zh
提交
3bc75a7d
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,体验更适合开发者的 AI 搜索 >>
提交
3bc75a7d
编写于
9月 05, 2018
作者:
A
Aston Zhang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2pass linreg gluon
上级
999a8237
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
8 addition
and
6 deletion
+8
-6
TERMINOLOGY.md
TERMINOLOGY.md
+4
-2
chapter_deep-learning-basics/linear-regression-gluon.md
chapter_deep-learning-basics/linear-regression-gluon.md
+4
-4
未找到文件。
TERMINOLOGY.md
浏览文件 @
3bc75a7d
...
...
@@ -130,7 +130,7 @@ softmax回归,softmax regression
批量,batch
平均池化层,
mean
pooling layer
平均池化层,
average
pooling layer
欠拟合,overfitting
...
...
@@ -138,9 +138,11 @@ softmax回归,softmax regression
全连接层,fully connected layer
权重,weight
实例,instance
收敛
速度,convergence rat
e
收敛
,converg
e
数值方法,numerical method
...
...
chapter_deep-learning-basics/linear-regression-gluon.md
浏览文件 @
3bc75a7d
...
...
@@ -83,7 +83,7 @@ loss = gloss.L2Loss() # 平方损失又称 L2 范数损失。
## 定义优化算法
同样,我们也无需实现小批量随机梯度下降。在导入Gluon后,我们创建一个
Trainer实例,并指定学习率为0.03的小批量随机梯度下降(
`sgd`
)为优化算法。该优化算法将用来迭代
`net`
实例所有通过
`add`
函数嵌套的层所包含的所有参数,其可以通过
`collect_params`
获取。
同样,我们也无需实现小批量随机梯度下降。在导入Gluon后,我们创建一个
`Trainer`
实例,并指定学习率为0.03的小批量随机梯度下降(
`sgd`
)为优化算法。该优化算法将用来迭代
`net`
实例所有通过
`add`
函数嵌套的层所包含的全部参数。这些参数可以通过
`collect_params`
函数
获取。
```
{.python .input n=9}
from mxnet import gluon
...
...
@@ -93,7 +93,7 @@ trainer = gluon.Trainer(net.collect_params(), 'sgd', {'learning_rate': 0.03})
## 训练模型
在使用Gluon训练模型时,我们通过调用
`Trainer`
实例的
`step`
函数来迭代模型参数。
由于变量
`l`
是长度为
`batch_size`
的一维NDArray,执行
`l.backward()`
等价于
`l.sum().backward()`
。按照小批量随机梯度下降的定义,我们在
`step`
函数中指明批量大小,其跟上一节实现的
`sgd`
函数那样会对样本梯度做
平均。
在使用Gluon训练模型时,我们通过调用
`Trainer`
实例的
`step`
函数来迭代模型参数。
上一节中我们提到,由于变量
`l`
是长度为
`batch_size`
的一维NDArray,执行
`l.backward()`
等价于执行
`l.sum().backward()`
。按照小批量随机梯度下降的定义,我们在
`step`
函数中指明批量大小,从而对批量中样本梯度求
平均。
```
{.python .input n=10}
num_epochs = 3
...
...
@@ -107,7 +107,7 @@ for epoch in range(1, num_epochs + 1):
print('epoch %d, loss: %f' % (epoch, l.mean().asnumpy()))
```
下面我们分别比较学到的和真实的模型参数。我们从
`net`
获得需要的层,并访问其权重(
`weight`
)和
位移
(
`bias`
)。学到的和真实的参数很接近。
下面我们分别比较学到的和真实的模型参数。我们从
`net`
获得需要的层,并访问其权重(
`weight`
)和
偏差
(
`bias`
)。学到的和真实的参数很接近。
```
{.python .input n=12}
dense = net[0]
...
...
@@ -128,7 +128,7 @@ true_b, dense.bias.data()
## 练习
*
如果将
`l = loss(output, y)`
替换成
`l = loss(output, y).mean()`
,我们需要将
`trainer.step(batch_size)`
相应地改成
`trainer.step(1)`
。这是为什么呢?
*
查
看
`gloss`
和
`init`
里面提供了哪些其他的损失函数和初始
方法。
*
查
阅MXNet文档,看看
`gluon.loss`
和
`init`
模块里提供了哪些损失函数和初始化
方法。
*
如何访问
`dense.weight`
的梯度?
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录