提交 00149e9d 编写于 作者: F fdc_mbp

翻译对齐"自动梯度"->"自动微分"

上级 c0f60cea
......@@ -695,13 +695,13 @@ tensor([[1., 1.],
[1., 1.]])
```
**使用 `clone()` 时需要注意一件重要的事情**。如果源张量启用了自动梯度,那么克隆也会启用。**关于自动梯度的视频将对此进行更深入的介绍**,但如果您想了解更多细节,请继续往下看。
**使用 `clone()` 时需要注意一件重要的事情**。如果源张量启用了自动微分,那么克隆也会启用。**关于自动微分的视频将对此进行更深入的介绍**,但如果您想了解更多细节,请继续往下看。
_在大多情况下_,这就是您想要的。例如,如果模型的 `forward()` 方法有多个计算路径,而原始张量和克隆张量都对模型的输出有贡献,那么要实现模型学习,就需要同时打开两个张量的自动梯度。如果源张量启用了自动梯度(如果它是一组学习权重或从涉及权重的计算中导出,则通常会启用),那么就会得到想要的结果。
_在大多情况下_,这就是您想要的。例如,如果模型的 `forward()` 方法有多个计算路径,而原始张量和克隆张量都对模型的输出有贡献,那么要实现模型学习,就需要同时打开两个张量的自动微分。如果源张量启用了自动微分(如果它是一组学习权重或从涉及权重的计算中导出,则通常会启用),那么就会得到想要的结果。
_另一方面_,如果您正在进行的计算中,原始张量或其克隆都不需要跟踪梯度,那么只要源张量关闭了自动梯度,就可以正常运行。
_另一方面_,如果您正在进行的计算中,原始张量或其克隆都不需要跟踪梯度,那么只要源张量关闭了自动微分,就可以正常运行。
_不过还有第三种情况_,想象一下:您在模型的 `forward()` 函数中执行计算,默认情况下梯度都是打开的,但您想在中途取出一些值来生成一些指标。在这种情况下,您不希望源张量的克隆副本跟踪梯度——关闭自动梯度的历史跟踪可以提高性能。为此,您可以在源张量上使用 `.detach()` 方法:
_不过还有第三种情况_,想象一下:您在模型的 `forward()` 函数中执行计算,默认情况下梯度都是打开的,但您想在中途取出一些值来生成一些指标。在这种情况下,您不希望源张量的克隆副本跟踪梯度——关闭自动微分的历史跟踪可以提高性能。为此,您可以在源张量上使用 `.detach()` 方法:
```python
a = torch.rand(2, 2, requires_grad=True) # turn on autograd
......@@ -730,13 +730,13 @@ tensor([[0.0905, 0.4485],
发生了什么?
- 我们创建了一个开启 `requirements_grad=True``a`**我们还没有涉及这个可选参数,但会在自动梯度单元中涉及。**
- 当我们打印 `a` 时,它会告诉我们属性 `requires_grad=True` ——这意味着自动梯度和计算历史跟踪已打开。
- 我们拷贝 `a` 并标记为 `b`。当我们打印 `b` 时,可以看到它正在跟踪计算历史记录——它继承了 `a` 的自动梯度设置,并添加到了计算历史记录中。
- 我们创建了一个开启 `requirements_grad=True``a`**我们还没有涉及这个可选参数,但会在自动微分单元中涉及。**
- 当我们打印 `a` 时,它会告诉我们属性 `requires_grad=True` ——这意味着自动微分和计算历史跟踪已打开。
- 我们拷贝 `a` 并标记为 `b`。当我们打印 `b` 时,可以看到它正在跟踪计算历史记录——它继承了 `a` 的自动微分设置,并添加到了计算历史记录中。
- 我们将 `a` 复制到 `c` 中,但要先调用 `detach()`
- 在打印 `c` 时,我们没有看到计算历史,也没有看到 `requires_grad=True`
`detach()` 方法 _将张量从其计算历史中分离出来_。它说:"不管接下来要做什么,都要像关闭自动梯度一样"。我们可以看到,当我们在最后再次打印 `a` 时,它保留了 `requires_grad=True` 属性。
`detach()` 方法 _将张量从其计算历史中分离出来_。它说:"不管接下来要做什么,都要像关闭自动微分一样"。我们可以看到,当我们在最后再次打印 `a` 时,它保留了 `requires_grad=True` 属性。
## 转用 GPU
PyTorch 的主要优势之一是其在兼容 CUDA 的 Nvidia GPU 上的强大加速能力。 CUDA 是计算统一设备架构(Compute Unified Device Architecture)的缩写,是 Nvidia 的并行计算平台。到目前为止,我们所做的一切都是在 CPU 上完成的。我们该如何使用更快的硬件呢?
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册