当前位置: 首页 > news >正文

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

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

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

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

安装:CPU 版本

pip install torch torchvision torchaudio

GPU 版本(需 CUDA 环境):

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

示例(CUDA 11.8):

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:张量运算

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:自动求导

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

例 3:定义神经网络

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 为例)

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:保存与加载模型

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

例 6:GPU 加速

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 框架。

图片

“点赞有美意,赞赏是鼓励”

http://www.dtcms.com/a/600561.html

相关文章:

  • 如果网站打开非常缓慢国内全屋定制十大名牌
  • 【操作系统】详解 分页与分段系统存储管理
  • flex:1
  • 【LeetCode经典题解】递归破解对称二叉树之谜
  • 电脑已连接网络无线自动重启
  • 创建Vue2和Vue3项目区别对比和对应示例演示
  • 《算法闯关指南:优选算法--位运算》--38.消失的两个数字
  • 建设银行网站背景图片wordpress 读写分离
  • 最简单的网站建设语音wordpress首页弹窗你
  • 哪里有建设哪里有我们wordpress如何做优化
  • Spring Boot 2.7.18(最终 2.x 系列版本)8 - 日志:Log4j2 基本概念;Log4j2 多环境日志配置策略
  • Vue 列表渲染完全指南:v-for 核心用法、key 原理及数据监测实战(附代码案例)
  • webrtc降噪-PriorSignalModelEstimator类源码分析与算法原理
  • 如何在电商上购物网站企业咨询管理是干嘛的
  • 重庆大型的网站建设企业社交网站定制
  • 门户网站设计运城市网站建设公司
  • 网站 公司备案与个人备案如何用群晖做自己的网站
  • 商务网站建设实训报告1500字炫酷文字制作网站
  • 给你一个网站你怎么做的网站建设的风格
  • 手机网站和微信网站有哪些opensearch wordpress
  • 餐饮公司网站建设的特点中山网站建设的公司
  • 青岛网站设计多少钱苏州工业园区两学一做教育网站
  • 做网站的备案外包服务公司排名
  • 做网站淮南请人开发一个app要多少钱
  • 个人做论坛网站需要哪些备案.net 企业网站源码
  • 广州手机网站定制信息一个app软件
  • 做网站莱芜短视频推广引流方案
  • 建一个商城网站需要多久小程序游戏排行榜2023
  • 购物网站单页模板新媒体如何运营推广
  • 小说盗版网站怎么做郑州seo招聘