在学习pytorch的用法之前,首先要明白张量的概念及相关用法。
数学中定义的张量是基于向量和矩阵的推广,换而言之,标量可视为零阶张量,矢量可视为一阶张量,矩阵可视为二阶张量。
在pytorch中,张量Tensor是最基础的运算单位,与NumPy中的NDArray类似,张量表示的是一个多维矩阵,但是pytorch中的张量运算可以运行在GPU,运算速度会大大提高。
1、Tensor的秩
张量的秩是指张量中存在的维数,假设我们有一个秩为2的张量,这等同于我们有一个矩阵、我们有一个二维数组或者我们有一个二维张量。
下面让我们考虑一下秩告诉了我们什么,秩揭示了什么信息。一个张量的秩告诉我们需要多少个索引来访问或引用张量数据结构中包含的特定数据元素。例如,当我们有一个二维张量时,我们需要两个指标来访问张量的单个元素。
例如,假设我们有一个二维张量,这个张量有两个轴,而元素被认为是存在的或者沿着一个轴运动的,这个运动会受到每个轴长度的限制,每个轴的长度告诉我们沿轴有多少个索引,假设我们知道第一个轴的长度是3,第二个轴的长度是4,因为第一个轴的长度是3,这意味着我们可以在第一个轴上标上3个位置,所有0~2的指标都是有效的,第二个轴的长度是4,我们可以沿着第二周来表示位置,这对于第一个轴的每个索引都是有可能的。
2、Tensor的形状
所以一个张量的秩告诉我们一个张量有多少个轴,在这些轴的长度中,我们得到了一个非常重要的概念,即张量的形状。张量的形状是由每个轴的长度决定的,所以如果我们知道一个给定的张量的形状,那么我们就知道了每