PyTorch 是什么:定位、历史与生态
本教程共 60 篇 · 第 1 篇 · 更新于 2026-08-17 · 约 3 分钟阅读
本节目标:搞懂 PyTorch 是什么、解决什么问题,再了解一下它的历史和生态。这一章不写代码,先把地图摊开。
一句话回答
PyTorch 是一个开源的深度学习框架。它是基于 Python 的科学计算包,底层由 C++ 实现。官方给它定了两个用途:一是替代 NumPy,利用 GPU 加速计算;二是做深度学习研究平台,自带自动微分(autograd)能力。
翻译成人话:你想快速做矩阵运算,PyTorch 能算得飞快;你想训练神经网络,PyTorch 把最麻烦的求梯度环节包办了。
深度学习(Deep Learning)是机器学习的一个分支,靠多层神经网络从数据里学规律。PyTorch 就是干这个活的主力工具之一。现在主流的大语言模型、图像识别、语音助手,底层几乎都有它的身影。
它在深度学习工作流里的位置
一次典型的深度学习项目,流程大致是这样:
- 准备数据,把图片、文本整理成张量。
- 搭建神经网络,定义它怎么算。
- 反复训练,让模型从数据里学规律。
- 评估效果,保存模型,部署上线。
PyTorch 在每个环节都提供了对应工具:张量(Tensor)管数据,torch.nn 管模型,autograd 管梯度,torch.optim 管优化,torch.export 管导出。一套工具走完全程,这也是它流行的原因。
它和 NumPy 是什么关系
用过 NumPy 的人上手 PyTorch 会非常快。两者的核心数据结构长得很像,PyTorch 的张量(Tensor)就是多维数组,操作方式和 NumPy 几乎一致。
差别在三点:
- PyTorch 张量能在 GPU 上计算,NumPy 只能在 CPU 上跑。
- PyTorch 自带自动微分,能自动算梯度,NumPy 得手动求导。
- PyTorch 提供了一整套神经网络组件,比如
torch.nn、torch.optim。
所以你可以把 PyTorch 理解成「会算梯度、能上 GPU 的 NumPy」,再外加一整套深度学习工具箱。
NotePyTorch 和 NumPy 可以互相转换,数据在两边倒来倒去毫无压力。具体怎么转,第四章会讲。
和 TensorFlow 的恩怨
说起深度学习框架,绕不开 TensorFlow。TensorFlow 由 Google 开发,PyTorch 由 Facebook(现 Meta)的人工智能研究团队开发。
早期两者的核心区别在计算图。TensorFlow 1.x 是静态计算图:先把网络结构定义好,再一次性执行,中途改结构得从头来。PyTorch 是动态计算图(Dynamic Computation Graph):边执行边建图,代码跑到哪算到哪,想改就改。
这个差别对研究特别友好。你可以像写普通 Python 一样写神经网络,随时 print 中间结果,断点调试毫无障碍。PyTorch 因此在学术界迅速流行,论文里的代码越来越多是 PyTorch 写的。
Note现在 TensorFlow 2.x 也支持了动态图,两者差距在缩小。但生态惯性已经形成:新项目选 PyTorch 的比例远高于 TensorFlow。
历史:从 Torch 到 PyTorch
PyTorch 的前身叫 Torch,是个基于 Lua 语言的科学计算框架。Lua 在小众圈子里流行度不高,社区发展受限。2016 年,Facebook 团队把 Torch 的核心思想搬到 Python,发布 PyTorch 0.1。
此后几个关键节点:
- 2017 年 0.2 版本引入分布式训练支持。
- 2018 年 1.0 发布,补齐生产部署能力。
- 2020 年 1.6 版本加入自动混合精度训练。
- 2022 年 1.13 发布,为 2.0 铺路。
- 2023 年 2.0 发布,带来
torch.compile编译加速。 - 2026 年 7 月发布 2.13.0,也就是本教程的基线版本。
2.x 时代的演进主线很清晰:从「研究优先」走向「统一的生产级训练与推理平台」。torch.compile 让训练更快,torch.export 让模型导出更稳,torch.accelerator 让代码和设备解耦。
Tip老教程里常出现 TorchScript(
jit.trace/jit.script),它从 2.10 起已弃用,新项目请用torch.export。本教程后续章节会细讲。
生态全景
PyTorch 不是单打独斗,周围有一圈官方和社区的配套库:
torchvision:计算机视觉的数据集、模型和图像变换,做图像任务基本必装。torchaudio:音频处理工具,波形加载、特征提取一条龙。torchtext:NLP 数据工具(已停止积极维护,新项目慎用)。- Hugging Face Transformers:几乎涵盖所有主流预训练模型,大模型时代的事实标准。
- PyTorch Lightning:把训练样板代码打包的高层库,写实验更快。
- ExecuTorch:面向移动端和边缘设备的推理运行时。
这些库和 PyTorch 主版本配套发布。装一个主包,旁边跟着装几个领域库,是常态用法。
谁在用 PyTorch
工业界的应用相当广泛。特斯拉的自动驾驶、Uber 的概率编程库 Pyro,都构建在 PyTorch 之上。Meta 自家的 Llama 系列模型,训练和推理也离不开 PyTorch 生态。
学术界更是几乎默认选择。顶会论文的代码实现,用 PyTorch 写的是绝对多数。这意味着你遇到问题,几乎总能找到现成的代码参考。对学习者来说,这是很大的红利。
为什么选它
我的看法很简单:对零基础学习者,PyTorch 是最合适的第一框架。语法贴近 Python,学起来不别扭;调试直观,报错能看懂;资料最丰富,卡住了一搜就有答案。这三点对新手比什么都实在。
本教程后面所有章节,都基于 PyTorch 2.13.0 讲解。下一章,我们把环境装好,让 PyTorch 真正跑起来。