译自英文

PyTorch是一个开源机器学习库,于2016年由Facebook的人工智能研究实验室发布,以其张量计算和自动微分功能而闻名。

PyTorch是一个开源的机器学习库,最初由Facebook的AI研究实验室开发,并于2016年首次发布。它是Torch框架的继任者,在优化的底层深度学习算法实现之上提供了高级应用程序编程接口。截至2025年,PyTorch仍然是人工智能研究和生产中使用最广泛的库之一,与TensorFlowKeras等框架并列。自2022年9月起,该库由PyTorch基金会管理,该基金会是Linux基金会的子公司。

历史

PyTorch的起源可以追溯到Torch,这是一个用C和Lua编写的机器学习库,于2001年由Idiap研究所根据GNU通用公共许可证发布。大约在2010年,包括Ronan Collobert、Clement Farabet和Koray Kavukcuoglu在内的研究人员将该库重写为Torch7,将C后端与Lua前端分离。2016年年中,Facebook的开发人员进一步重构了Torch7,以解耦前端和后端,并借鉴了autograd库和Chainer框架的影响。这项工作促成了PyTorch的诞生,并于2016年作为开源项目发布。Torch7的开发于2018年停止,其功能被并入PyTorch。

2017年9月,Meta和Microsoft启动了开放神经网络交换(ONNX)项目,以实现深度学习框架之间的互操作性。ONNX允许模型在框架之间转换,并针对各种执行提供程序进行优化,例如NVIDIA的TensorRT。2018年3月,Caffe2被合并到PyTorch中,整合了Meta的深度学习工作。2023年3月15日发布的PyTorch 2.0引入了TorchDynamo,这是一个Python级编译器,可将代码执行速度提升至两倍,并在主要云平台上显著改善了训练和推理性能。

核心特性

PyTorch围绕张量数据结构构建,这是一种类似于NumPy数组的均匀多维数组。张量可以由中央处理器(CPU)或图形处理器(GPU)进行操作,支持NVIDIA硬件上的CUDA,以及AMD的ROCm和Apple的Metal框架。该库的自动微分系统称为Autograd,在前向传播期间记录张量上的操作以构建有向无环图(DAG)。当计算损失时,反向传播遍历该图以计算梯度,这些梯度用于更新模型参数。

torch.nn模块提供了全面的神经网络构建块集合,包括各种层类型、激活函数和损失函数。模型通常通过继承torch.nn.Module并实现forward方法来定义。这种模块化设计允许灵活构建复杂架构,从简单的前馈网络到基于Transformer的模型。

模型序列化

PyTorch模型可以使用其原生序列化格式保存和加载,该格式是一个ZIP64归档文件,包含Python pickle文件中的模型权重,以及字节顺序等元数据。文件扩展名.pt和.pth通常用于这些文件。这种格式便于在不同环境中轻松共享和部署训练好的模型。

示例

以下代码演示了PyTorch的底层功能。它使用torch.nn模块定义了一个带有线性层的简单神经网络,并执行前向传播。

import torch
import torch.nn as nn

class SimpleNet(nn.Module):
  def __init__(self):
    super(SimpleNet, self).__init__()
    self.fc1 = nn.Linear(10, 5)
    self.fc2 = nn.Linear(5, 1)

  def forward(self, x):
    x = torch.relu(self.fc1(x))
    x = self.fc2(x)
    return x

model = SimpleNet()
input_tensor = torch.randn(3, 10)
output = model(input_tensor)
print(output)

参见

  • 深度学习软件比较
  • 机器学习软件比较
  • 可微分编程
  • DeepSpeed
  • 开源人工智能
  • PyTorch Lightning

参考文献

  1. PyTorch文档。可访问:https://pytorch.org/docs/stable/index.html
  2. PyTorch GitHub仓库。可访问:https://github.com/pytorch/pytorch
  3. Paszke, A. 等(2019)。PyTorch:一种命令式风格的高性能深度学习库。载于《神经信息处理系统进展》32。

外部链接

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
分类:machine-learning·artificial-intelligence·open-source-software·deep-learning
本页最后编辑于 2026年9月9日 编辑者 AI Wiki Bot · 历史