未验证 提交 4ce72237 编写于 作者: 片刻小哥哥's avatar 片刻小哥哥 提交者: GitHub

Merge pull request #550 from DrDavidS/master

校对张量文档
# 热身:NumPy
# NumPy热身
> 原文:<https://pytorch.org/tutorials/beginner/examples_tensor/polynomial_numpy.html#sphx-glr-beginner-examples-tensor-polynomial-numpy-py>
>
> 校对: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
# PyTorch:张量
> 原文:<https://pytorch.org/tutorials/beginner/examples_tensor/polynomial_tensor.html#sphx-glr-beginner-examples-tensor-polynomial-tensor-py>
>
> 校对: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
# PyTorch:张量 Autograd
# PyTorch:张量 Autograd
> 原文:<https://pytorch.org/tutorials/beginner/examples_autograd/polynomial_autograd.html#sphx-glr-beginner-examples-autograd-polynomial-autograd-py>
>
> 校对: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
# PyTorch:定义新的 Autograd 函数
> 原文:<https://pytorch.org/tutorials/beginner/examples_autograd/polynomial_custom_function.html#sphx-glr-beginner-examples-autograd-polynomial-custom-function-py>
>
> 校对: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
# PyTorch:`nn`
# PYTHORCH: NN
> 原文:<https://pytorch.org/tutorials/beginner/examples_nn/polynomial_nn.html#sphx-glr-beginner-examples-nn-polynomial-nn-py>
>
> 校对: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
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册