基本操作
基本概念和简单操作
在 PyTorch 中,张量(Tensor)和标量(Scalar)是数据的基本表示形式。理解它们的区别和用途是有效使用 PyTorch 的关键。
张量(Tensor)
张量是一个多维数组,类似于 NumPy 数组,但具有更强大的功能,特别是在 GPU 加速计算和自动微分方面。张量可以是标量、向量、矩阵或更高维度的数组。
0 维张量(标量):只有一个数值。例如,3.14。
1 维张量(向量):一维数组。例如,[1.0, 2.0, 3.0]。
2 维张量(矩阵):二维数组。例如,[[1.0, 2.0], [3.0, 4.0]]。
更高维张量:可以有任意多的维度。例如,三维张量可以表示一个立方体的数据。
标量(Scalar)
标量是一个只有一个数值的张量,通常被称为 0 维张量。它没有任何维度信息,只有一个单一的数值。标量在 PyTorch 中也是通过张量来表示的。
def main():
# 标量(0 维张量)
scalar = torch.tensor(3.14)
print(f"标量: {
scalar}, 形状: {
scalar.shape}")
# 向量(1 维张量)
vector = torch.tensor([1.0, 2.0, 3.0])
print(f"向量: {
vector}, 形状: {
vector.shape}")
# 矩阵(2 维张量)
matrix = torch.tensor([[1.0, 2.0], [3.0, 4.0]])
print(f"矩阵: {
matrix}, 形状: {
matrix.shape}")
# 三维张量
tensor3d = torch.tensor([[[1.0, 2.0], [3.0, 4.0]], [[5.0, 6.0], [7.0, 8.0]]])
print(f"三维张量: {
tensor3d}, 形状: {
tensor3d.shape}")
if __name__ == "__main__":
main()
输出:
标量: 3.140000104904175, 形状: torch.Size([])
向量: tensor([1., 2., 3.]), 形状: torch.Size([3])
矩阵: tensor([[1., 2.],
[3., 4.]]), 形状: torch.Size([2, 2])
三维张量: tensor([[[1., 2.],
[3., 4.]],
[[5., 6.