PyTorch框架简介
PyTorch 是一个基于 Python 的深度学习框架,核心数据结构是张量(Tensor)。它兼顾灵活性和工程可用性,常用于计算机视觉、自然语言处理、强化学习等任务。
PyTorch特点
- 张量计算:张量和 NumPy 数组很像,但可以直接放到 GPU 上跑,适合做大规模数值计算。
- 自动求导:
autograd能自动计算梯度,是模型训练的基础。 - 搭建方便:
torch.nn提供常用网络层、损失函数和优化器,继承torch.nn.Module就能定义模型。 - 动态图机制:边运行边构图,写法更直观,调试和做实验更方便。
- CUDA 支持:用
tensor.to(device)就能把数据和模型切到 GPU。 - 工程适配较好:支持多平台、分布式训练,也能用于实际部署。
PyTorch与TensorFlow
- 早期 PyTorch 因动态图和更接近 Python 的写法,在研究和原型验证里更受欢迎。
- TensorFlow 2.x 也支持动态图,但 PyTorch 在易用性和调试体验上通常更直接。
PyTorch发展历史
- Torch / Torch7:PyTorch 的前身,早期使用 Lua,在深度学习领域有一定影响。
- PyTorch 0.1.0(2016):FAIR 发布首个版本,正式转向 Python 生态。
- PyTorch 0.2.0:引入动态图,灵活性明显提升,这也是它后续流行的重要原因。
- PyTorch 1.0.0(2018):首个稳定版本发布,训练和部署流程更成熟。
- PyTorch 2.0:引入
torch.compile和 TorchDynamo,重点提升编译与训练性能。
