PyTorch简介
PyTorch是一个基于Python的开源机器学习库,由Meta(原Facebook)于2016年开源的Python优先深度学习框架,源自2002年的Torch库。其核心特性包括:
- 动态计算图:支持运行时修改模型结构,调试更直观
- 张量计算:类似NumPy的多维数组,但支持GPU加速
- 自动求导:通过反向传播自动计算梯度
- 应用领域:广泛用于计算机视觉(如特斯拉自动驾驶)、图像生成(Stable Diffusion)和语音识别(OpenAI Whisper)
PyTorch主要用途
PyTorch主要用于计算机视觉和自然语言处理等领域的深度学习研究和应用开发。其核心功能是提供一个灵活且高效的平台,让研究人员和开发者能够轻松地构建、训练和部署深度学习模型。
计算机视觉
- 图像分类:识别图像中的物体(如分辨猫狗、识别车型)
- 目标检测:找出图像中物体的位置并分类(如自动驾驶中识别行人、车辆)
- 图像分割:精确识别图像中每个像素属于哪个物体(如医疗影像中分割出肿瘤区域)
- 图像生成:创建新的、逼真的图像(如Stable Diffusion、DALL-E等AI绘画工具的核心)
自然语言处理
- 文本分类:情感分析、垃圾邮件过滤
- 机器翻译:将一种语言翻译成另一种语言
- 问答系统:让机器阅读文本并回答相关问题
- 文本生成:编写故事、新闻、代码等(如ChatGPT早期的版本就是基于PyTorch的)
其他领域
- 语音识别与合成:如Siri、Alexa等语音助手
- 推荐系统:电商平台(如亚马逊)、视频平台(如Netflix、抖音)的"猜你喜欢"
- 强化学习:用于训练AI玩电子游戏(如AlphaGo)、控制机器人等
PyTorch安装
- 打开https://pytorch.org/get-started/locally/
- 选择首选项,并执行命令,如下图:

PyTorch CPU版本与GPU版本比较
PyTorch的CPU版本和GPU版本在计算性能上有显著差异,但在学习难度和API使用上基本一致。
核心差异:计算性能
CPU:像一位博学的教授,核心数量少但每个都很强大,擅长处理复杂的串行任务
GPU:如同万人军团,拥有数千个简化核心,专为并行计算设计
性能对比
训练速度:GPU比CPU快10-100倍
数据处理:GPU能处理更大规模的数据,显存容量决定上限
模型复杂度:只有GPU才能流畅运行超大模型
学习与API差异
API完全一致:无论是CPU还是GPU版本,PyTorch的编程接口完全相同
学习无差别:基础语法、模型构建、训练流程等核心概念完全一致
仅需掌握一个额外操作:数据在GPU和CPU间的传输
其他
https://developer.nvidia.com/cuda-gpus
注意事项
- CUDA版本不匹配:检查nvcc --version确认实际安装版本
分布式介绍
PyTorch分布式训练通过多进程通信实现模型或数据的并行计算,核心工具为torch.distributed包,其同步分布式训练由DistributedDataParallel(DDP)实现。主要技术包括:
核心概念
- 数据并行:将数据分片到多卡/多机,同步更新梯度(如DDP)。
- 模型并行:拆分模型层到不同设备,适用于超大模型。
- 通信原语:
torch.distributed提供多进程间张量通信接口。
关键技术
- DDP:基于Ring-AllReduce算法,高效同步梯度。
- DeepSpeed:支持ZeRO优化器减少显存占用[1]。
- 序列并行:如Ulysses算法处理长序列[2]。
应用场景
- 单机多卡:通过PCIe/NVLink通信,适合实验室环境。
- 多机多卡:跨节点训练,需处理网络延迟。