张量是一种特殊的数据结构,与数组和矩阵非常相似。在PyTorch中,我们使用张量来编码模型的输入和输出,以及模型的参数。
张量类似于NumPy的ndarrays,只是张量可以在GPU或其他硬件加速器上运行。事实上,张量和NumPy数组通常可以共享相同的底层内存,从而无需复制数据(请参阅使用NumPy进行桥接)。张量还针对自动微分进行了优化(我们将在稍后的Autograd部分中看到更多内容)。如果您熟悉ndarrays,您将熟悉Tensor API。
初始化张量
直接从数据中初始化
张量可以直接从数据中创建。数据类型是自动推断的。
从NumPy数组初始化
张量可以从NumPy数组中创建(反之亦然—请参阅使用NumPy进行桥接)。
从另一个tensor初始化
新张量保留参数张量的属性(形状,数据类型),除非显式覆盖。
具有随机值或常量值
shape
是张量维度的元组。在下面的函数中,它确定输出张量的维数。
张量的属性
张量属性描述了它们的形状、数据类型以及存储它们的设备。
标准的numpy式索引和切片
连接张量
算术运算
这段代码主要演示了如何在PyTorch中进行矩阵乘法和元素级乘法。
矩阵乘法与元素级乘法是什么?
矩阵乘法和元素级乘法是两种不同的数学运算。
单元素张量
如果你有一个单元素张量,例如通过将张量的所有值聚合为一个值,你可以使用
item()
将它转换为Python数值。
就地操作
与NumPy的桥接
CPU和NumPy数组上的张量可以共享它们的底层内存位置,改变一个就会改变另一个。
张量到NumPy数组
NumPy数组到张量
Notebook来源:
Tensors - PyTorch Tuesday 2.3.0+ cu 121文档 --- Tensors — PyTorch Tutorials 2.3.0+cu121 documentation