一、基础工具与安装
- Python两大法宝函数
dir()
:快速查看模块结构,例如dir(torch)
可查看PyTorch所有子模块help()
:获取函数/类的详细说明,如help(torch.cuda.is_available)
查看GPU检测方法
python
import torch
print(dir(torch.optim)) # 查看优化器模块
- 安装PyTorch
- CPU版本 :
pip install torch torchvision
- GPU版本:需额外安装CUDA驱动,官网生成对应命令
- 验证安装:
print(torch.__version__)
和torch.cuda.is_available()
- CPU版本 :
二、核心数据结构:Tensor
- Tensor特性
- 类似NumPy数组但支持GPU加速
- 创建方式:
torch.tensor()
,torch.randn()
,torch.zeros()
python
x = torch.rand(2,3) # 创建2x3随机张量
- Tensor操作
- 索引/切片:
x[0,:]
- 形状变换:
x.view(3,2)
或x.reshape(3,2)
- 设备切换:
x.to ('cuda')
实现GPU计算
- 索引/切片:
三、数据处理与可视化
- Dataset与DataLoader
- 自定义数据集需实现
__len__
和__getitem__
- 自定义数据集需实现
python
from torch.utils.data import Dataset
class MyDataset(Dataset):
def __getitem__(self, index):
# 返回单条数据
- TensorBoard可视化
- 安装:
pip install tensorboard
- 基础使用:
- 安装:
python
writer = SummaryWriter('logs')
writer.add_scalar('Loss', loss, epoch) # 记录标量
writer.add_image('Input', img_tensor) # 记录图像[[3,7,10]]
- 启动服务:
tensorboard --logdir=logs --port=6006
- Transforms数据增强
- 将PIL图像转为Tensor并进行归一化:
python
transform = transforms.Compose([
transforms.Resize(256),
transforms.ToTensor() # 范围[0,1][[4,5]]
])
四、神经网络搭建
- 模型定义
- 继承
nn.Module
并实现forward
方法
- 继承
python
class Net(nn.Module):
def __init__(self):
super().__init__()
self.fc = nn.Linear(784, 10)
def forward(self, x):
return self.fc(x)
- 训练流程
python
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)
criterion = nn.CrossEntropyLoss()
for epoch in range(10):
output = model(input)
loss = criterion(output, target)
optimizer.zero_grad()
loss.backward()
optimizer.step() # 参数更新[[4,12,16]]
五、实战建议
-
学习路径
- 先掌握Python基础,再学习Tensor操作 → 数据加载 → 模型构建 → 训练优化
- 官方教程:https://pytorch.org/tutorials/
-
常见问题
- GPU不可用:检查CUDA版本与PyTorch是否匹配
- 维度错误 :使用
tensor.shape
检查维度,unsqueeze()
/squeeze()
调整
通过结合官方文档与实战项目(如FashionMNIST分类),可快速提升PyTorch应用能力。建议在学习过程中多用print()
和TensorBoard观察中间结果,加深对计算图的理解。