Pytorch学习记录(一)Tensor及其性质
什么是Pytorch
这是一个基于Python的科学计算软件包,面向两组受众:
- 替代NumPy以使用GPU的功能
- 深度学习研究平台,可提供最大的灵活性和速度1
1. 张量(Tensors)
张量如同数组和矩阵一样, 是一种特殊的数据结构。张量的英文是Tensor,它是PyTorch里面基础的运算单位,在PyTorch中, 神经网络的输入、输出以及网络的参数等数据, 都是使用张量来进行描述。
张量与NumPy的ndarrays
类似,此外,张量也可以在GPU上使用以加速计算。
在同构的意义下,第零阶张量 (r = 0) 为标量 (Scalar),第一阶张量 (r = 1) 为向量 (Vector), 第二阶张量 (r = 2) 则称为矩阵 (Matrix),第三阶以上的统称为多维张量。1
我们可以使用下标来引用向量的任一元素。2例如,我们可以通过 x i x_i xi来引用第 i i i个元素。注意,元素 x i x_i xi是一个标量,所以我们在引用它时不必加粗。一般认为列向量是向量的默认方向,故在数学中,向量 x \mathbf{x} x可以写为:
x = [ x 1 x 2 ⋮ x n ] , \mathbf{x} =\begin{bmatrix}x_{1} \\x_{2} \\ \vdots \\x_{n}\end{bmatrix}, x=⎣⎢⎢⎢⎡x1x2⋮xn⎦⎥⎥⎥⎤,
矩阵,我们通常用粗体、大写字母来表示(例如, X \mathbf{X} X、 Y \mathbf{Y} Y和 Z \mathbf{Z} Z),在代码中表示为具有两个轴的张量。在数学表示法中,我们使用