Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
pytorch-doc-zh
提交
40bc5e2e
P
pytorch-doc-zh
项目概览
OpenDocCN
/
pytorch-doc-zh
通知
120
Star
3932
Fork
992
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
pytorch-doc-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
40bc5e2e
编写于
6月 10, 2021
作者:
Z
zhangruiyuan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
一些表述问题
上级
0befd49b
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
38 addition
and
24 deletion
+38
-24
docs/1.7/16.md
docs/1.7/16.md
+24
-24
docs/1.7/a.html
docs/1.7/a.html
+14
-0
未找到文件。
docs/1.7/16.md
浏览文件 @
40bc5e2e
...
...
@@ -58,7 +58,7 @@ print(x_train.shape)
![
../_img/sphx_glr_nn_tutorial_001.png
](
img/7c783def0bbe536f41ed172041b7e89e.png
)
出
:
输出如下
:
```
py
(
50000
,
784
)
...
...
@@ -81,7 +81,7 @@ print(y_train.min(), y_train.max())
```
出
:
输出如下
:
```
py
tensor
([[
0.
,
0.
,
0.
,
...,
0.
,
0.
,
0.
],
...
...
@@ -140,7 +140,7 @@ print(preds[0], preds.shape)
```
出
:
输出如下
:
```
py
tensor
([
-
2.5964
,
-
2.3153
,
-
2.1321
,
-
2.4480
,
-
2.2930
,
-
1.9507
,
-
2.1289
,
-
2.4175
,
...
...
@@ -168,7 +168,7 @@ print(loss_func(preds, yb))
```
出
:
输出如下
:
```
py
tensor
(
2.3735
,
grad_fn
=<
NegBackward
>
)
...
...
@@ -191,7 +191,7 @@ print(accuracy(preds, yb))
```
出
:
输出如下
:
```
py
tensor
(
0.0938
)
...
...
@@ -238,7 +238,7 @@ for epoch in range(epochs):
```
就是这样:我们完全从头开始创建并训练了一个最小的神经网络(在这种情况下,是逻辑回归,因为我们没有隐藏
的
层)!
就是这样:我们完全从头开始创建并训练了一个最小的神经网络(在这种情况下,是逻辑回归,因为我们没有隐藏层)!
让我们检查损失和准确率,并将其与我们之前获得的进行比较。 我们希望损失会减少,准确率会增加,而且确实如此。
...
...
@@ -247,7 +247,7 @@ print(loss_func(model(xb), yb), accuracy(model(xb), yb))
```
出
:
输出如下
:
```
py
tensor
(
0.0811
,
grad_fn
=<
NegBackward
>
)
tensor
(
1.
)
...
...
@@ -256,9 +256,9 @@ tensor(0.0811, grad_fn=<NegBackward>) tensor(1.)
## 使用`torch.nn.functional`
现在,我们将重构代码,使其执行与以前相同的操作,只是我们将开始利用 PyTorch 的
`nn`
类使其更加简洁和灵活。 从这里开始的每一步,
我们都应该使代码中的一个或多个:更短,更易理解
和/或更灵活。
现在,我们将重构代码,使其执行与以前相同的操作,只是我们将开始利用 PyTorch 的
`nn`
类使其更加简洁和灵活。 从这里开始的每一步,
应该使我们的代码占一个或多个特点:更简洁、更易理解、
和/或更灵活。
第一步也是最简单的步骤,就是用
`torch.nn.functional`
(通常按照惯例将其导入到名称空间
`F`
中)替换我们的手写激活和损失函数,从而缩短代码长度。 该模块包含
`torch.nn`
库中的所有函数(而该库的其他部分包含类)。 除了广泛的损失和激活函数外,您还会在这里找到一些方便的函数来创建神经网络,例如
合并
函数。 (还有一些用于进行卷积,线性层等的函数,但是正如我们将看到的那样,通常可以使用库的其他部分来更好地处理这些函数。)
第一步也是最简单的步骤,就是用
`torch.nn.functional`
(通常按照惯例将其导入到名称空间
`F`
中)替换我们的手写激活和损失函数,从而缩短代码长度。 该模块包含
`torch.nn`
库中的所有函数(而该库的其他部分包含类)。 除了广泛的损失和激活函数外,您还会在这里找到一些方便的函数来创建神经网络,例如
池化
函数。 (还有一些用于进行卷积,线性层等的函数,但是正如我们将看到的那样,通常可以使用库的其他部分来更好地处理这些函数。)
如果您使用的是负对数似然损失和对数 softmax 激活,那么 Pytorch 会提供结合了两者的单一函数
`F.cross_entropy`
。 因此,我们甚至可以从模型中删除激活函数。
...
...
@@ -279,7 +279,7 @@ print(loss_func(model(xb), yb), accuracy(model(xb), yb))
```
出
:
输出如下
:
```
py
tensor
(
0.0811
,
grad_fn
=<
NllLossBackward
>
)
tensor
(
1.
)
...
...
@@ -322,7 +322,7 @@ print(loss_func(model(xb), yb))
```
出
:
输出如下
:
```
py
tensor
(
2.3903
,
grad_fn
=<
NllLossBackward
>
)
...
...
@@ -379,7 +379,7 @@ print(loss_func(model(xb), yb))
```
出
:
输出如下
:
```
py
tensor
(
0.0808
,
grad_fn
=<
NllLossBackward
>
)
...
...
@@ -409,7 +409,7 @@ print(loss_func(model(xb), yb))
```
出
:
输出如下
:
```
py
tensor
(
2.4215
,
grad_fn
=<
NllLossBackward
>
)
...
...
@@ -425,7 +425,7 @@ print(loss_func(model(xb), yb))
```
出
:
输出如下
:
```
py
tensor
(
0.0824
,
grad_fn
=<
NllLossBackward
>
)
...
...
@@ -487,7 +487,7 @@ print(loss_func(model(xb), yb))
```
出
:
输出如下
:
```
py
tensor
(
2.2999
,
grad_fn
=<
NllLossBackward
>
)
...
...
@@ -545,7 +545,7 @@ print(loss_func(model(xb), yb))
```
出
:
输出如下
:
```
py
tensor
(
0.0819
,
grad_fn
=<
NllLossBackward
>
)
...
...
@@ -597,7 +597,7 @@ print(loss_func(model(xb), yb))
```
出
:
输出如下
:
```
py
tensor
(
0.0821
,
grad_fn
=<
NllLossBackward
>
)
...
...
@@ -648,7 +648,7 @@ for epoch in range(epochs):
```
出
:
输出如下
:
```
py
0
tensor
(
0.3743
)
...
...
@@ -717,7 +717,7 @@ fit(epochs, model, loss_func, opt, train_dl, valid_dl)
```
出
:
输出如下
:
```
py
0
0.3120644524335861
...
...
@@ -763,7 +763,7 @@ fit(epochs, model, loss_func, opt, train_dl, valid_dl)
```
出
:
输出如下
:
```
py
0
0.32337012240886687
...
...
@@ -812,7 +812,7 @@ fit(epochs, model, loss_func, opt, train_dl, valid_dl)
```
出
:
输出如下
:
```
py
0
0.30119081069231035
...
...
@@ -879,7 +879,7 @@ fit(epochs, model, loss_func, opt, train_dl, valid_dl)
```
出
:
输出如下
:
```
py
0
0.327303307390213
...
...
@@ -896,7 +896,7 @@ print(torch.cuda.is_available())
```
出
:
输出如下
:
```
py
True
...
...
@@ -938,7 +938,7 @@ fit(epochs, model, loss_func, opt, train_dl, valid_dl)
```
出
:
输出如下
:
```
py
0
0.1833980613708496
...
...
docs/1.7/a.html
0 → 100644
浏览文件 @
40bc5e2e
<!DOCTYPE html>
<html
lang=
"en"
>
<head>
<meta
charset=
"UTF-8"
>
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1.0"
>
<title>
Document
</title>
</head>
<body>
<div>
<li
style=
"background-color:#83ccbb;color: white;padding: 2px 12px;"
>
TIP
</li>
<p
style=
"background-color: #f3f4f7;padding: 18px 22px;margin: 0;"
>
您可以使用标准的 python 调试器逐步浏览 PyTorch 代码,从而可以在每一步检查各种变量值。 取消注释以下`set_trace()`即可尝试
</p>
</div>
</body>
</html>
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录