Python 第三方库:PyTorch(动态计算图的深度学习框架)

PyTorch 是由 Facebook AI Research(FAIR)团队于 2016 年开源的深度学习框架。

它以动态图(Dynamic Computation Graph)、易用性和科研友好性著称,广泛应用于学术研究和工业界的深度学习任务。

PyTorch 提供了与 NumPy 类似的张量操作接口,同时具备自动求导功能,支持 GPU 加速,并能与 Python 生态(NumPy、SciPy、scikit-learn 等)紧密结合。

安装:CPU 版本

nginx 复制代码
pip install torch torchvision torchaudio

GPU 版本(需 CUDA 环境):

官方推荐使用官网安装指令生成器:PyTorch Get Started。

示例(CUDA 11.8):

perl 复制代码
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

常见应用场景:

(1)学术研究:灵活的动态图机制适合快速试验新模型。

(2)计算机视觉:通过 torchvision 提供丰富的数据集与预训练模型。

(3)自然语言处理:HuggingFace Transformers 等主流 NLP 库均基于 PyTorch。

(4)强化学习:易于构建复杂的交互式训练流程。

(5)工业部署:通过 TorchScript、ONNX、LibTorch 可扩展到生产环境。

◆ ◆

核心概念

1、张量(Tensor)

PyTorch 的核心数据结构,类似 NumPy 数组,但支持 GPU 加速。

2、动态计算图(Define-by-Run)

与 TensorFlow 1.x 的静态图不同,PyTorch 在运行时构建计算图,更加直观灵活。

3、自动求导(Autograd)

torch.autograd 自动追踪张量操作,支持梯度反向传播。

4、模块化神经网络(torch.nn)

提供丰富的层、损失函数和优化器,便于快速构建复杂模型。

5、数据加载(torch.utils.data)

提供 Dataset 和 DataLoader 抽象,支持批处理、打乱和并行加载。

6、部署支持

TorchScript:将动态图转换为可优化的静态图。

ONNX:跨框架导出与部署。

◆ ◆

应用举例

例 1:张量运算

go 复制代码
import torch
x = torch.tensor([[1, 2], [3, 4]], dtype=torch.float32)y = torch.tensor([[5, 6], [7, 8]], dtype=torch.float32)
print(torch.matmul(x, y))  # 矩阵乘法

例 2:自动求导

makefile 复制代码
import torch
x = torch.ones(2, 2, requires_grad=True)y = x + 2z = y * y * 3out = z.mean()
out.backward()  # 反向传播print(x.grad)   # 梯度

例 3:定义神经网络

python 复制代码
import torchimport torch.nn as nnimport torch.nn.functional as F
class Net(nn.Module):    def __init__(self):        super(Net, self).__init__()        self.fc1 = nn.Linear(784, 128)        self.fc2 = nn.Linear(128, 10)
    def forward(self, x):        x = F.relu(self.fc1(x))        return self.fc2(x)
net = Net()print(net)

例 4:训练循环(以 MNIST 为例)

python 复制代码
import torchimport torch.nn as nnimport torch.optim as optimfrom torchvision import datasets, transforms
# 数据预处理transform = transforms.Compose([transforms.ToTensor()])
train_loader = torch.utils.data.DataLoader(    datasets.MNIST('.', train=True, download=True, transform=transform),    batch_size=64, shuffle=True)
# 模型与优化器model = Net()optimizer = optim.Adam(model.parameters(), lr=0.001)criterion = nn.CrossEntropyLoss()
# 训练一个 epochfor data, target in train_loader:    optimizer.zero_grad()    output = model(data.view(-1, 784))    loss = criterion(output, target)    loss.backward()    optimizer.step()
print("训练完成")

例 5:保存与加载模型

makefile 复制代码
# 保存参数torch.save(model.state_dict(), "model.pth")
# 加载参数new_model = Net()new_model.load_state_dict(torch.load("model.pth"))new_model.eval()

例 6:GPU 加速

makefile 复制代码
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")model.to(device)

◆ ◆

常用模块速览

torch.Tensor

张量数据结构。

torch.autograd

自动求导系统。

torch.nn

神经网络模块。

torch.optim

优化器(SGD、Adam 等)。

torchvision

计算机视觉工具包。

torch.utils.data

数据加载工具。

torch.jit

TorchScript(部署)。

torch.onnx

ONNX 导出。

📘 小结

PyTorch 是动态计算图驱动的深度学习框架,以灵活性和易用性著称。

它不仅在学术研究中占据主导地位,也通过 TorchScript、ONNX 等工具进入工业部署领域。

凭借强大的生态系统(如 torchvision、HuggingFace Transformers、PyTorch Lightning),PyTorch 已成为科研与工程并重的主流 AI 框架。

"点赞有美意,赞赏是鼓励"

相关推荐
IT_陈寒36 分钟前
Redis内存爆了,原来我漏掉了这个致命配置
前端·人工智能·后端
luckdewei2 小时前
FastAPI 资产管理系统实战:复杂 ORM 关联、Alembic 迁移与 N+1 查询优化
python
用户3521802454752 小时前
🎆从 Prompt 到 Skill:让 Spring AI Agent 学会"装新技能"
人工智能·spring boot·ai编程
米小虾3 小时前
手把手教你搭建第一个生产级AI Agent:从选型到实战的完整指南
人工智能·agent
任沫3 小时前
Agent之Function Call
javascript·人工智能·go
米小虾3 小时前
2026年AI Agent全面爆发:从开源生态到企业级应用的进化之路
人工智能·agent
用户6919026813393 小时前
Vibe Coding 开发项目的基本范式
人工智能·设计模式·代码规范
To_OC3 小时前
别再跟 AI 死磕 prompt 了,我写了个 Loop 让它自己改到满意为止
人工智能·aigc·agent
血小溅4 小时前
三大 AI 编码框架深度对比:GSD vs OpenSpec vs Superpowers
人工智能·后端
武子康7 小时前
调查研究-186 LangChain 和 LangGraph 的区别:从快速构建 Agent 到生产级工作流编排
人工智能·langchain·llm