张量(tensor)是一种类似于数组和矩阵的特殊的数据结构。PyTorch 中模型的输入、输出和参数都是张量。
张量类似 NumPy 的多维数组,但是张量可以借助像 GPU 这样的硬件加速运算。事实上,为了避免复制数据的开销,张量和 NumPy 数组经常共享底部内存。
张量也针对自动微分进行了优化。
下面开始 show the codes!
import torch
import numpy as np
初始化张量
张量有很多种初始化方式。
直接从原始数据初始化
data = [[1, 2],[3, 4]]
x_data = torch.tensor(data)
数据类型是自动推断的。
从 NumPy 数组初始化
np_array = np.array(data)
x_np = torch.from_numpy(np_array)
从另一个张量初始化
x_ones = torch.ones_like(x_data) # 保留 x_data 的属性
print(f"Ones Tensor: \n {x_ones} \n")
x_rand = torch.rand_like(x_data, dtype=torch.float) # 显式覆盖 x_data 的数据类型
print(f"Random Tensor: \n {x_rand} \n")
输出
One