第一个 PyTorch 程序:Hello PyTorch
本教程共 60 篇 · 第 3 篇 · 更新于 2026-08-17 · 约 2 分钟阅读
本节目标:跑起第一个 PyTorch 程序,认识张量(Tensor)长什么样,学会用
导入 torch
学编程的老规矩,第一个程序叫 Hello World。PyTorch 版就是导入库、建个张量、打印出来:
import torch
print(torch.__version__)
输出应该是你装的版本号,比如 2.13.0。
Notetorch 是 PyTorch 的主包名。
import torch是每段代码的第一步,后面所有章节都会用到它。
import torch 这行做了不少事:加载核心库、注册张量类型、准备自动微分引擎。你不用关心细节,只要知道它是入场券就行。
创建张量:从一维到二维
张量(Tensor)是 PyTorch 的基本数据结构。你可以先把它想成「带维度的表格」。最简单的张量,就是 Python 列表套上一层:
import torch
x = torch.tensor([1, 2, 3])
print(x)
输出:
tensor([1, 2, 3])
这就是一个一维张量。tensor(...) 表示它是张量,方括号里是数据。
把列表再套一层,就是二维张量,也就是矩阵:
import torch
x = torch.tensor([[1, 2], [3, 4]])
print(x)
输出:
tensor([[1, 2],
[3, 4]])
两行两列,清清楚楚。深度学习里的图片、文本,最终都会变成这种张量,只是维度更多。一张彩色图片是三维:高、宽、颜色通道;一批图片叠起来就是四维。
Tip张量和 Python 列表的区别:张量有固定的形状和数据类型,运算规则明确,还能搬上 GPU。列表只是装东西的容器,没有这些能力。
张量能直接做运算
张量支持加减乘除,直接写运算符就行:
import torch
a = torch.tensor([1.0, 2.0, 3.0])
b = torch.tensor([4.0, 5.0, 6.0])
print(a + b) # 加法
print(a * b) # 逐元素乘法
print(a.sum()) # 求和
print(a.max()) # 最大值
输出:
tensor([5., 7., 9.])
tensor([ 4., 10., 18.])
tensor(6.)
tensor(3.)
注意 a * b 是逐元素相乘:第一个元素乘第一个元素,第二个乘第二个。不是矩阵乘法。矩阵乘法用 @ 运算符或 torch.matmul,后面章节细讲。
Tip
a.sum()的结果也是张量,所以显示成tensor(6.)。想拿到纯 Python 数值,用.item():a.sum().item()返回6.0。训练时看损失值,靠的就是它。
随机张量:训练数据的起点
实际训练时,数据很少是手写的,更多是随机生成。torch.rand 生成 0 到 1 之间的随机数:
import torch
x = torch.rand(2, 3)
print(x)
输出(每次运行都不一样):
tensor([[0.6291, 0.2581, 0.6414],
[0.9739, 0.8243, 0.2276]])
torch.rand(2, 3) 的意思是:2 行 3 列,元素是 0 到 1 的均匀随机数。想复现同样的随机结果,可以在开头加一句 torch.manual_seed(0) 固定随机种子。做实验对比时这招很常用。
张量的三个身份证
每个张量都自带三个关键属性,打印出来看看:
import torch
x = torch.rand(2, 3)
print(x.shape) # 形状
print(x.dtype) # 数据类型
print(x.device) # 所在设备
输出:
torch.Size([2, 3])
torch.float32
cpu
shape 是形状,说明是 2 行 3 列。dtype 是数据类型,float32 就是 32 位浮点数。device 是设备,cpu 表示在 CPU 上。这三个属性是张量的身份证,下一章我们详细拆解。
Warning新手最容易把 shape 和 dtype 弄混:shape 管「长什么样」,dtype 管「什么类型」。写代码时两者写错位置,报错会很常见。
把本章代码合成一个文件
把上面的片段拼在一起,就是一个完整的入门脚本:
import torch
# 版本号
print(torch.__version__)
# 创建张量
x = torch.tensor([[1, 2], [3, 4]])
print(x)
# 运算
a = torch.tensor([1.0, 2.0, 3.0])
b = torch.tensor([4.0, 5.0, 6.0])
print(a + b)
# 随机张量和属性
y = torch.rand(2, 3)
print(y.shape, y.dtype, y.device)
存成 hello_pytorch.py,用 python hello_pytorch.py 运行。能跑通,说明环境、语法、张量概念都没问题。
下一步
这一章你跑通了第一个 PyTorch 程序:导入、创建、运算、查看属性。看起来平平无奇,但这就是 PyTorch 世界的全部地基。下一章,我们把张量本身研究透:怎么创建、有什么属性、数据类型怎么选。