人工智能 | PyTorch 简介
简介
PyTorch是一个基于Torch的使用Python编程语言的开源机器学习框架。Torch 是一个开源的用Lua脚本语言编写的机器学习库,用于创建深度神经网络。
PyTorch 支持多种不同的数学运算,简化了人工神经网络模型的创建。PyTorch 主要应用于数据科学家用于研究和人工智能应用,如计算机视觉和自然语言处理等应用。PyTorch 遵循 modified BSD 许可协议。
2016年,PyTorch 由 Meta AI Research 首次发布,现在已成为Linux基金会的一部分。许多深度学习软件都是在PyTorch基础之上构建的,包括Tesla 的 Autopilot、Uber 的 Pyro、HuggingFace 的 Transformers、PyTorch Lightning、和 Catalyst。
PyTorch提供了两个高级特性:一是类似于NumPy的张量计算,可通过GPU实现强大的加速;二是基于带自动微分系统的深度神经网络。支持ONNX与其他程序库交换模型。
发展历史
PyTorch源于Torch。Torch是一个基于Lua编程语言的科学计算框架。Torch最初是由当时的机器学习研究员Ronan Collobert于2002年开发,很受研究人员欢迎,特别是深度学习领域。然而,随着机器学习社区开始接受Python作为事实上的编程语言,对基于Python的Torch版本的需求变得明显。
为了满足这一需求,2016年,Meta AI Research的研究员Soumith Chintala开始研究基于Python的Torch版本。Chintala与其他研究人员和工程师一起合作开发了 PyTorch 的初始版本。随着PyTorch的发展,又加入了两名核心开发人员和来自不同公司和大学的大约100名阿尔法测试人员。PyTorch的主要开发人员有 Adam Paszke、Sam Gross 和 Gregory Chanan。该团队从另一个流行的深度学习库Chainer中汲取灵感,引入了动态计算图的概念,此功能允许研究人员动态构建和修改神经网络,从而更轻松地试验不同的架构和技术。
在Meta AI Research的大力支持下,PyTorch迅速发展。Meta AI Research不仅为PyTorch的开发提供资金和资源,还积极支持研究人员和工程师使用PyTorch。Meta AI Research还发布了几个基于 PyTorch 构建的研究项目和工具,进一步巩固了其作为深度学习库的声誉。
2016年9月,PyTorch Alpha-1发布。
2017年1月,PyTorch发布了第一个公开版本 Version 0.1.0。
2017年9月,Meta和Microsoft开发了一个开放神经网络交换(ONNX)。PyTorch和Caffe2两个框架定义的模型互不兼容,将PyTorch定义的模型转换为Caffe2是一个挑战。ONNX就是为在框架之间转换模型而开发的。
2018年3月,Caffe2并入PyTorch。
2018年10月,PyTorch团队发布了 Version 1.0。
2022年9月,Meta宣布PyTorch将由新成立的独立组织PyTorch基金会管理,Linux基金会的子公司。PyTorch基金会的成员和管理委员会包括 Meta、Amazon Web Services (AWS)、Google Cloud、AMD、Microsoft Azure和NVIDIA。
2023年3月,PyTorch 2.0发布。
PyTorch 主要特性
PyTorch遵循Python独特功能编写可读代码的编码风格。Python也因其对动态计算图的使用而广受欢迎。PyTorch能够实时运行和测试部分代码,而不是等待整个程序的编写。
PyTorch 具有以下的特性:
Tensor(张量)计算。与NumPy数组类似,(Tensor)张量是用于任意数值计算的通用n维数组,并由图形处理单元加速。
TorchScript。这是PyTorch的生产环境,使用户能够在模式间无缝转换。TorchScript优化了功能、速度、易用性和灵活性。
动态图形计算。该功能允许用户动态改变网络行为,而不是等待所有代码执行完毕。
自动微分。该技术用于创建和训练神经网络。它通过在神经网络中进行反向传递来数值计算函数的导数。
Python支持。因为PyTorch是基于Python的,所以它可以与流行的库和包一起使用,如NumPy、SciPy、Numba和Cynthon。
PyTorch 最热门用例
PyTorch由于其灵活性和计算能力而成为最受欢迎的深度学习框架之一。以下是PyTorch的一些常见用例:
自然语言处理(NLP)。NLP是一种行为技术,计算机能够理解人类语言的口语或书面语。自然语言处理的主要内容包括机器翻译、信息检索、情感分析、信息抽取和问答。
图像分类。这个过程使用图像分类算法对图像进行分类。例如,该算法可以告诉计算机视觉应用程序某个图像中是猫还是狗。虽然物体检测对人眼来说毫不费力,但对计算机视觉应用来说可是一项挑战。使用PyTorch,开发人员可以处理图像和视频,创建准确的计算机视觉模型。
小结
PyTorch是在Torch深度学习框架基础上,用流行的Python编程语言实现的。并在Meta的支持下,得到了快速的发展。PyTorch提供了GPU加速的张量计算和自动微分的深度神经网络等特性。由于使用Python语言,可以选择NumPy、SciPy和Cython等Python软件包,没有额外的学习成本。PyTorch的动态计算图机制,方便了模型构建和开发调试。
- 免责声明
- 本文所包含的观点仅代表作者个人看法,不代表新火种的观点。在新火种上获取的所有信息均不应被视为投资建议。新火种对本文可能提及或链接的任何项目不表示认可。 交易和投资涉及高风险,读者在采取与本文内容相关的任何行动之前,请务必进行充分的尽职调查。最终的决策应该基于您自己的独立判断。新火种不对因依赖本文观点而产生的任何金钱损失负任何责任。