diff --git a/docs/1.7/08.md b/docs/1.7/08.md index d78d6eb0a430dc078ef7d13deb3f12e842b1b65b..511420cb5393c7a86d075f49533b744851de5af1 100644 --- a/docs/1.7/08.md +++ b/docs/1.7/08.md @@ -1,14 +1,17 @@ -# 热身:NumPy +# NumPy热身 > 原文: +> +> 校对:DrDavidS -经过训练的三阶多项式,可以通过最小化平方的欧几里得距离来预测`y = sin(x)`从`-pi`到`pi`。 -此实现使用 numpy 手动计算正向传播,损失和后向通过。 +这里我们准备一个三阶多项式,通过最小化平方欧几里得距离来训练,并预测函数 `y = sin(x)` 在`-pi`到`pi`上的值。 -numpy 数组是通用的 n 维数组; 它对深度学习,梯度或计算图一无所知,而只是执行通用数值计算的一种方法。 +在本实现中,我们使用 numpy 手动实现前向传播,损失(loss)和反向传播。 -```py +numpy 数组是一种通用的 n 维数组;它跟深度学习,梯度或计算图没啥关系,只是执行通用数值计算的一种方法。 + +```python import numpy as np import math @@ -55,5 +58,3 @@ print(f'Result: y = {a} + {b} x + {c} x^2 + {d} x^3') [下载 Python 源码:`polynomial_numpy.py`](https://pytorch.org/tutorials/_downloads/6287cd68dd239d4f34ac75d774a66e23/polynomial_numpy.py) [下载 Jupyter 笔记本:`polynomial_numpy.ipynb`](https://pytorch.org/tutorials/_downloads/d4cfaf6a36486a5e37afb34266028d9e/polynomial_numpy.ipynb) - -[由 Sphinx 画廊](https://sphinx-gallery.readthedocs.io)生成的画廊 \ No newline at end of file diff --git a/docs/1.7/09.md b/docs/1.7/09.md index 709223d723fadb8685a791ffa7ec90a676939004..9a55127e218a75bb7d53f63c48e29ed086e94f08 100644 --- a/docs/1.7/09.md +++ b/docs/1.7/09.md @@ -1,14 +1,16 @@ # PyTorch:张量 > 原文: +> +> 校对:DrDavidS -经过训练的三阶多项式,可以通过最小化平方的欧几里得距离来预测`y = sin(x)`从`-pi`到`pi`。 +这里我们准备一个三阶多项式,通过最小化平方欧几里得距离来训练,并预测函数 `y = sin(x)` 在`-pi`到`pi`上的值。 -此实现使用 PyTorch 张量手动计算正向传播,损失和后向通过。 +此实现使用了 PyTorch 张量(tensor)来手动实现前向传播,损失(loss)和反向传播。 -PyTorch 张量基本上与 numpy 数组相同:它对深度学习或计算图或梯度一无所知,只是用于任意数值计算的通用 n 维数组。 +PyTorch 的张量基本上与 numpy 数组一样:它跟深度学习,梯度或计算图也没啥关系,只是用于任意数值计算的一种通用 n 维数组。 -numpy 数组和 PyTorch 张量之间的最大区别是 PyTorch 张量可以在 CPU 或 GPU 上运行。 要在 GPU 上运行操作,只需将张量转换为 cuda 数据类型。 +numpy 数组和 PyTorch 张量之间的最大区别在于,PyTorch 张量可以在 CPU 或 GPU 上运行。如果要在 GPU 上运行,只需将张量转换为 cuda 数据类型。 ```py import torch @@ -60,5 +62,3 @@ print(f'Result: y = {a.item()} + {b.item()} x + {c.item()} x^2 + {d.item()} x^3' [下载 Python 源码:`polynomial_tensor.py`](https://pytorch.org/tutorials/_downloads/38bc029908996abe0c601bcf0f5fd9d8/polynomial_tensor.py) [下载 Jupyter 笔记本:`polynomial_tensor.ipynb`](https://pytorch.org/tutorials/_downloads/1c715a0888ae0e33279df327e1653329/polynomial_tensor.ipynb) - -[由 Sphinx 画廊](https://sphinx-gallery.readthedocs.io)生成的画廊 \ No newline at end of file diff --git a/docs/1.7/10.md b/docs/1.7/10.md index da7429037a15dd5427baf3de988f4361de3b0c00..0c9d0b1676cb22e8fff4f11f1329640825ed893a 100644 --- a/docs/1.7/10.md +++ b/docs/1.7/10.md @@ -1,12 +1,14 @@ -# PyTorch:张量和 Autograd +# PyTorch:张量 与 Autograd > 原文: +> +> 校对:DrDavidS -经过训练的三阶多项式,可以通过最小化平方的欧几里得距离来预测`y = sin(x)`从`-pi`到`pi`。 +这里我们准备一个三阶多项式,通过最小化平方欧几里得距离来训练,并预测函数 `y = sin(x)` 在`-pi`到`pi`上的值。 -此实现使用 PyTorch 张量上的运算来计算正向传播,并使用 PyTorch Autograd 来计算梯度。 +此实现使用了 PyTorch 张量(tensor)运算来实现前向传播,并使用 PyTorch Autograd 来计算梯度。 -PyTorch 张量表示计算图中的一个节点。 如果`x`是具有`x.requires_grad=True`的张量,则`x.grad`是另一个张量,其保持`x`相对于某个标量值的梯度。 +PyTorch 张量表示计算图中的一个节点。 如果`x`是一个张亮,且`x.requires_grad=True`,则`x.grad`是另一个张量,它保存了`x`相对于某个标量值的梯度。 ```py import torch @@ -73,5 +75,3 @@ print(f'Result: y = {a.item()} + {b.item()} x + {c.item()} x^2 + {d.item()} x^3' [下载 Python 源码:`polynomial_autograd.py`](https://pytorch.org/tutorials/_downloads/2956e289de4f5fdd59114171805b23d2/polynomial_autograd.py) [下载 Jupyter 笔记本:`polynomial_autograd.ipynb`](https://pytorch.org/tutorials/_downloads/e1d4d0ca7bd75ea2fff8032fcb79076e/polynomial_autograd.ipynb) - -[由 Sphinx 画廊](https://sphinx-gallery.readthedocs.io)生成的画廊 \ No newline at end of file diff --git a/docs/1.7/11.md b/docs/1.7/11.md index a7cda6fa6b56e10c240b070e79964a1f12d7e60e..f4d538f23d7f0d50391cc20886e89462a73d5ec3 100644 --- a/docs/1.7/11.md +++ b/docs/1.7/11.md @@ -1,12 +1,16 @@ # PyTorch:定义新的 Autograd 函数 > 原文: +> +> 校对:DrDavidS -经过训练的三阶多项式,可以通过最小化平方的欧几里得距离来预测`y = sin(x)`从`-pi`到`pi`。 而不是将多项式写为`y = a + bx + cx ^ 2 + dx ^ 3`,我们将多项式写为`y = a + b P[3](c + dx)`其中`P[3](x) = 1/2 (5x ^ 3 - 3x)`是三次的[勒让德多项式](https://en.wikipedia.org/wiki/Legendre_polynomials)。 +这里我们准备一个三阶多项式,通过最小化平方欧几里得距离来训练,并预测函数 `y = sin(x)` 在`-pi`到`pi`上的值。 -此实现使用 PyTorch 张量上的运算来计算正向传播,并使用 PyTorch Autograd 来计算梯度。 +这里我们不将多项式写为`y = a + bx + cx^2 + dx^3`,而是将多项式写为`y = a + bP_3(c + dx)`,其中`P_3(x) = 1/2 (5x ^ 3 - 3x)`是三次[勒让德多项式](https://en.wikipedia.org/wiki/Legendre_polynomials)。 -在此实现中,我们实现了自己的自定义 Autograd 函数来执行`P'[3](x)`。 通过数学,`P'[3](x) = 3/2 (5x ^ 2 - 1)`: +此实现使用了 PyTorch 张量(tensor)运算来实现前向传播,并使用 PyTorch Autograd 来计算梯度。 + +在此实现中,我们实现了自己的自定义 Autograd 函数来执行`P'_3(x)`。 从数学定义上讲,`P'_3(x) = 3/2 (5x ^ 2 - 1)`: ```py import torch @@ -99,5 +103,3 @@ print(f'Result: y = {a.item()} + {b.item()} * P3({c.item()} + {d.item()} x)') [下载 Python 源码:`polynomial_custom_function.py`](https://pytorch.org/tutorials/_downloads/b7ec15fd7bec1ca3f921104cfb6a54ed/polynomial_custom_function.py) [下载 Jupyter 笔记本:`polynomial_custom_function.ipynb`](https://pytorch.org/tutorials/_downloads/0a64809624bf2f3eb497d30d5303a9a0/polynomial_custom_function.ipynb) - -[由 Sphinx 画廊](https://sphinx-gallery.readthedocs.io)生成的画廊 \ No newline at end of file diff --git a/docs/1.7/12.md b/docs/1.7/12.md index 9dc0b70d70d95338085950b2bab544aabc3936a0..03e0a5af7bdb19945f0772315e717ec7a6a4dd94 100644 --- a/docs/1.7/12.md +++ b/docs/1.7/12.md @@ -1,12 +1,17 @@ -# PyTorch:`nn` +# PYTHORCH: NN > 原文: +> +> 校对:DrDavidS -经过训练的三阶多项式,可以通过最小化平方的欧几里得距离来预测`y = sin(x)`从`-pi`到`pi`。 +一个三阶多项式,通过最小化平方欧几里得距离来训练,并预测函数 `y = sin(x)` 在`-pi`到`pi`上的值。 -此实现使用来自 PyTorch 的`nn`包来构建网络。 PyTorch Autograd 使定义计算图和获取梯度变得容易,但是原始的 Autograd 对于定义复杂的神经网络来说可能太低了。 这是`nn`包可以提供帮助的地方。 `nn`包定义了一组模块,您可以将其视为神经网络层,该神经网络层从输入产生输出并且可能具有一些可训练的权重。 +这个实现使用 PyTorch 的`nn`包来构建神经网络。 +PyTorch Autograd 让我们定义计算图和计算梯度变得容易了,但是原始的 Autograd 对于定义复杂的神经网络来说可能太底层了。 +这时候`nn`包就能帮上忙。 +`nn`包定义了一组模块,你可以把它视作一层神经网络,该神经网络层接受输入,产生输出,并且可能有一些可训练的权重。 -```py +```python import torch import math @@ -78,10 +83,6 @@ print(f'Result: y = {linear_layer.bias.item()} + {linear_layer.weight[:, 0].item ``` -**脚本的总运行时间**:(0 分钟 0.000 秒) - [下载 Python 源码:`polynomial_nn.py`](https://pytorch.org/tutorials/_downloads/b4767df4367deade63dc8a0d3712c1d4/polynomial_nn.py) [下载 Jupyter 笔记本:`polynomial_nn.ipynb`](https://pytorch.org/tutorials/_downloads/7bc167d8b8308ae65a717d7461d838fa/polynomial_nn.ipynb) - -[由 Sphinx 画廊](https://sphinx-gallery.readthedocs.io)生成的画廊 \ No newline at end of file