一、PyTorch 安装 说明:安装环境基于windows环境
- 安装前准备 确保你已安装 Python(推荐 3.8 - 3.11),并建议使用虚拟环境(如 conda 或 venv)。
- 安装命令
安装 CPU 版本
pip install torch
或者安装带 CUDA 支持的版本(根据你的显卡选择)
可以在官网 https://pytorch.org/get-started/locally/ 获取安装命令
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 说明:pyTorch应为是基于python语言的一个框架组件,所以其安装就是pip安装相关代码包即可。 二、PyTorch 基础概念
- Tensors(张量) PyTorch 的核心数据结构是张量(Tensor),类似于 NumPy 的 ndarray,但支持 GPU 加速。 import torch
创建一个 2x3 的张量
x = torch.rand(2, 3) print(x)
张量运算
y = torch.rand(2, 3) z = x + y print(z)
将张量转为 NumPy 数组
print(z.numpy())
从 NumPy 数组创建张量
import numpy as np a = np.random.rand(2, 3) b = torch.from_numpy(a) 2. 自动求导(Autograd) PyTorch 的 autograd 模块可以自动计算梯度,是训练神经网络的关键。
创建一个需要计算梯度的张量
x = torch.ones(2, 2, requires_grad=True) print(x)
前向传播
y = x + 2 z = y * y * 3 out = z.mean()
反向传播
out.backward()
查看梯度
print(x.grad) # d(out)/dx
三、构建神经网络 使用 torch.nn 构建神经网络,通常需要继承 nn.Module 类。 示例:构建一个简单的全连接网络 import torch.nn as nn
class Net(nn.Module): def init(self): super(Net, self).init() self.fc1 = nn.Linear(10, 50) # 第一层 self.fc2 = nn.Linear(50, 1) # 输出层
def forward(self, x):
x = torch.relu(self.fc1(x)) # 使用 ReLU 激活函数
x = self.fc2(x)
return x
实例化网络
model = Net() print(model)
四、训练神经网络 训练流程包括:前向传播、损失计算、反向传播、参数更新。
- 定义损失函数和优化器 import torch.optim as optim
criterion = nn.MSELoss() # 均方误差损失函数 optimizer = optim.Adam(model.parameters(), lr=0.01) # Adam 优化器 2. 构建训练循环
生成随机数据(模拟数据)
x_train = torch.randn(100, 10) # 输入:100 个样本,每个有 10 个特征 y_train = torch.randn(100, 1) # 输出:100 个目标值
训练循环
for epoch in range(100): # 前向传播 outputs = model(x_train) loss = criterion(outputs, y_train)
# 反向传播和优化
optimizer.zero_grad()
loss.backward()
optimizer.step()
if (epoch + 1) % 10 == 0:
print(f'Epoch {epoch+1}, Loss: {loss.item():.4f}')
五、保存和加载模型
- 保存模型 torch.save(model.state_dict(), ‘model.pth’) print(“模型已保存”)
- 加载模型 model = Net() model.load_state_dict(torch.load(‘model.pth’)) model.eval() # 设置为评估模式
六、使用 GPU 加速(可选) 如果你有支持 CUDA 的 GPU,可以将模型和数据移到 GPU 上训练。 device = torch.device(“cuda” if torch.cuda.is_available() else “cpu”)
model.to(device) x_train = x_train.to(device) y_train = y_train.to(device)
七、常用模块介绍 模块 说明 torch.nn 构建神经网络的核心模块 torch.nn.functional 提供激活函数、损失函数等功能性函数 torch.optim 优化器模块,如 SGD、Adam torch.utils.data.Dataset 自定义数据集类 torch.utils.data.DataLoader 数据加载器,支持批量加载和打乱 torchvision 图像相关工具,提供数据集、模型、变换等
八、推荐学习资源 资源 说明 PyTorch 官网 官方文档、教程、模型库 PyTorch 中文社区 中文教程、案例、社区支持 Deep Learning with PyTorch: A 60 Minute Blitz 官方入门教程 动手学深度学习(PyTorch版) 免费在线书,配套代码 Kaggle Learn PyTorch Kaggle 提供的实战课程
九、总结 学习阶段 内容 初级 张量操作、自动求导、线性回归 中级 神经网络构建、图像分类(如 MNIST、CIFAR-10) 高级 CNN、RNN、Transformer、模型部署、分布式训练 后续我们将进一步学习 图像分类任务(如 MNIST) 或 文本分类任务 。