一、什么是Torch/PyTorch
1. 基础概念
Torch原本是基于 Lua 语言的深度学习计算框架;我们现在 Python 环境使用的PyTorch(日常大家口语简称 torch),是 Meta(原 Facebook)基于原 Torch 重构、完全适配 Python 的开源深度学习框架。
2. 核心底层载体:Tensor(张量)
torch最基础的数据单元是张量 Tensor,可以简单理解为:
1.带GPU加速(如果电脑没有NVIDIA显卡,默认使用cpu,张量放到GPU上运算,实现硬件加速,速度提升几十上百倍,
torch 在CPU上的矩阵运算速度,和NumPy几乎一致,二者底层都用高性能线性代数库;
torch 的独有优势不在CPU速度,而在于两点:
- 一键迁移到GPU实现超大倍率硬件提速;
- 自带自动求导autograd,NumPy 不支持。)
2.支持自动求导的增强版 NumPy 数组;
3.图片、文本、表格、模型权重全部都会转化为张量参与计算。
总结:兼容 CPU/GPU 双设备、自带自动求导机制,且底层做了并行优化的增强版NumPy数组;拥有NVIDIA显卡时可切换GPU实现大幅硬件加速,无显卡时在CPU正常运行,且CPU运算性能优于原生Python列表,持平numpy.
二、Torch(PyTorch)是干什么的?
1. 两大核心核心能力
(1)高性能数值计算
- 兼容CPU/NVIDIA GPU/苹果M系列MPS芯片硬件加速;
- 支持矩阵运算、图像变换、数据统计等海量数值运算,速度远超普通Python循环;
- 完美替代NumPy,且能一键把计算放到显卡上提速。
(2)自动微分 Autograd(深度学习灵魂)
框架自带自动求导引擎,不用手动推导复杂数学导数: 只需要定义前向计算流程,调用.backward()就能自动算出所有参数梯度,实现模型训练的反向传播,这是深度学习训练的核心基础。
2. 主流应用场景
场景 1:深度学习模型搭建、训练(最核心用途)
覆盖几乎所有 AI 方向:
- 计算机视觉:图像分类、目标检测、语义分割(YOLO、CNN 系列模型);
- 自然语言处理:大语言模型 LLM、文本分类、翻译;
- 语音识别、多模态大模型、生成式 AI(文生图、AIGC)。
配套完整工具链:
torch.nn:搭建神经网络层(卷积、全连接、激活函数、损失函数);torch.optim:Adam/SGD 等优化器,用来更新模型参数;torch.utils.data:数据集、批次加载工具,处理训练数据。
场景 2:算法科研实验
学术界首选框架,动态图机制:代码逐行执行,调试简单、易打断点,方便快速验证新算法、新论文思路,相比 TensorFlow 更灵活。
场景 3:工业落地部署
训练好的模型可以导出为 ONNX、TorchScript,部署到服务器、嵌入式设备(香橙派、RK 开发板)做实时推理,广泛用于自动驾驶、工业质检、智能监控等项目。
场景 4:通用科学计算
不想手动写复杂矩阵运算、需要GPU加速数值仿真时,也可以单独用torch做数据处理,不用深度学习模块。
三、Torch优势
- Python 原生语法:门槛低,和普通 Python、NumPy 写法高度相似;
- 动态计算图:运行时才构建计算逻辑,调试友好,报错定位清晰;
- GPU 一键加速:仅需
.to("cuda")一行代码,就能把计算迁移到显卡; - 生态完善:TorchVision(图像工具)、TorchAudio、TorchText、HuggingFace大模型库全部基于 PyTorch;
- 开源免费:商用、学术使用无版权限制。
四、CPU/GPU版本区别
| 维度 | CPU 版本 PyTorch | GPU (CUDA) 版本 PyTorch |
|---|---|---|
| 运行硬件 | 仅使用电脑 CPU 运算 | 支持 NVIDIA 显卡 GPU 加速,CPU 也可兼容运行 |
| 安装体积 | 安装包很小,几十 MB | 包体巨大(数百 MB~1GB),内置 CUDA 运行库 |
| 运算速度 | 训练 / 推理速度慢,仅适合学习、小 Demo | 深度学习训练提速 10~100 倍,工业项目必备 |
| 硬件要求 | 无显卡限制,所有电脑通用 | 必须是NVIDIA 显卡(AMD 显卡不支持 CUDA) |
| 核心判断函数 | torch.cuda.is_available()输出False | torch.cuda.is_available()输出True |
五、安装torch注意事项
使用最多的三个库,三者之间存在版本关联,需要注意,如果只是用到torch,不进行后续的图像音频操作可以忽略,建议依次安装全,
torch:主深度学习核心库,版本是基准;torchvision:图像工具包(数据集、卷积预处理、预训练模型),必须和 torch 严格配对;torchaudio:音频工具包,同样需要和 torch 主版本一一对应。
| PyTorch(torch) | torchvision | torchaudio | 配套 CUDA 版本 |
|---|---|---|---|
| 2.6.0 | 0.21.0 | 2.6.0 | CUDA 11.8 / 12.1 |
| 2.5.1 | 0.20.1 | 2.5.1 | CUDA 11.8 / 12.1 |
| 2.4.1 | 0.19.1 | 2.4.1 | CUDA 11.8 / 12.1 |
| 2.3.1 | 0.18.1 | 2.3.1 | CUDA 11.8 / 12.1 |
| 2.2.2 | 0.17.2 | 2.2.2 | CUDA 11.8 / 12.1 |
| 2.1.2 | 0.16.2 | 2.1.2 | CUDA 11.8 / 12.1 |
| 2.0.1 | 0.15.2 | 2.0.2 | CUDA 11.7 / 11.8 |