译自英文

PyTorch是一个开源的深度学习库,最初由Meta Platforms开发,现归Linux基金会管理。它提供了用于构建和训练神经网络的高级API,支持自动微分和GPU加速,截至2025年仍是最流行的框架之一。

PyTorch是一个开源的深度学习库,最初由Meta Platforms开发,目前由Linux基金会支持。它是Torch的继任者,提供构建在优化后的底层算法和架构实现之上的高级API,这些算法和架构包括TransformerSGD变体。该库将模型训练和推理简化为几行代码,支持自动并行化,并实现了CUDA绑定以利用GPU资源。截至2025年,它仍然是与TensorFlow和Keras并列的最流行的深度学习库之一,并为包括ChatGPT、Tesla Autopilot、Uber的Pyro以及Hugging Face的Transformers在内的商业系统提供支撑。

PyTorch使用张量作为基本数据类型,类似于NumPy数组,但支持GPU操作。训练通过Autograd实现,这是一种反向自动微分系统,在前向传播过程中构建操作的有向无环图,从而能够使用损失函数进行反向传播。该库可以通过Anaconda包管理器安装,并在研究和工业领域被广泛采用。

历史与发展

最初的Torch库于2001年由Idiap研究所根据GPL许可证发布,使用C++和CUDA编写,支持神经网络和支持向量机等方法。大约在2010年,Ronan Collobert、Clement Farabet和Koray Kavukcuoglu将其重写为Torch7或LuaTorch,采用C后端和Lua前端。2016年年中,开发者对其进行了重构,以解耦前端和后端,受到了torch-autograd和Chainer的影响,而后者又借鉴了HIPS/autograd。Torch7的开发于2018年停止,被PyTorch项目所取代。

Meta还运营着Caffe2,但这两个框架的模型互不兼容。2017年9月,Meta和微软创建了开放神经网络交换(ONNX)项目,旨在将框架与硬件特定的运行时解耦,从而实现模型转换和针对NVIDIA TensorRT等执行提供商的优化。Caffe2于2018年3月底并入PyTorch。2022年9月,Meta宣布PyTorch将由独立的PyTorch基金会管理,该基金会是Linux基金会的子公司。PyTorch 2.0于2023年3月15日发布,引入了TorchDynamo,这是一个Python级编译器,可将代码速度提升最多两倍,并在各大云平台上进行了改进。

张量操作

PyTorch定义了Tensor类(torch.Tensor),用于存储和操作同质的多维矩形数字数组。张量类似于NumPy数组,但可以由支持CUDA的NVIDIA GPU进行操作。该库还开发了对其他GPU平台的支持,包括AMD的ROCm和Apple的Metal Framework。这种灵活性使得在不同硬件环境中进行高效计算成为可能。

神经网络模块

torch.nn模块提供了全面的神经网络构建块集合,包括层和激活函数。网络通过继承该模块并在forward()函数中定义操作序列来构建。这种设计支持复杂的模型架构,从简单的线性层到残差网络U-Net等高级结构,促进了研究和部署。

序列化与文件格式

PyTorch可以使用自己的文件格式保存和加载模型,这是一种ZIP64归档,包含Python pickle文件中的模型权重,以及字节顺序等元数据。常见的文件扩展名是.pt和.pth。这种序列化功能支持模型持久化和共享,对于生产部署和协作开发至关重要。

使用示例

以下程序演示了该库的底层功能。使用nn模块定义了一个带有线性层的简单神经网络,展示了构建和训练模型的简便性。该示例突出了核心工作流程:定义网络、指定损失函数,并使用Adam等优化器执行反向传播。

参见

相关主题包括深度学习软件比较、可微分编程、DeepSpeed、开源人工智能和PyTorch Lightning。这些资源为更广泛的背景提供了参考。

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