PyTorch中的tensor,一般翻译为张量。张量是一种特殊的数据结构,与数组和矩阵非常相似。
在 PyTorch 中,使用张量来编码模型的输入和输出,以及模型的参数。
张量类似于 NumPy 的 ndarray,但是,张量可以在 GPU 或其他硬件加速器上运行。
事实上,如果在CPU上,张量和 NumPy 数组通常可以共享相同的底层内存,从而无需复制数据:
import torch
import numpy as np
#! convert tensor to numpy array
t = torch.ones(5)
print(f"t: {t}")
n = t.numpy()
print(f"n: {n}")
#! 张量的变化反映在 NumPy 数组中
t.add_(1)
print(f"t: {t}")
print(f"n: {n}")
#! convert numpy array to tensor
n = np.ones(5)
t = torch.from_numpy(n)
#! NumPy 数组的变化反映在张量中
np.add(n, 1, out=n)
print(f"t: {t}")
print(f"n: {n}")
张量还针对自动微分进行了优化。
总结:tensor是numpy ndarray的升级,能够在GPU以及其他加速硬件设备上运行。