PyTorch 简介
PyTorch被定义为用于Python的开源机器学习库。它用于自然语言处理等应用。它最初是由Facebook人工智能研究小组开发的,并且Uber的基于PyTorch构建的概率编程软件Pyro也是建立在其之上的。
最初,PyTorch是由Hugh Perkins开发的,作为基于Torch框架的LusJIT的Python封装。存在两种PyTorch变体。
PyTorch在Python中重新设计和实现了Torch,同时共享相同的后端核心C库的代码。PyTorch开发人员优化了此后端代码,以高效地运行Python。他们还保留了基于GPU的硬件加速以及使基于Lua的Torch具有可扩展性的功能。
特点
PyTorch的主要特点如下:−
简单界面 − PyTorch提供易于使用的API,因此被认为是非常简单易用的,并且支持Python语言运行。在这个框架中执行代码相当容易。
Python使用 − 这个库被认为是Pythonic的,可以与Python数据科学栈无缝集成。因此,它可以利用Python环境提供的所有服务和功能。
计算图 − PyTorch提供了一个出色的平台,提供了动态计算图。因此,用户可以在运行时更改它们。当开发人员不知道创建神经网络模型需要多少内存时,这是非常有用的。
PyTorch以以下三个抽象层次而闻名:−
- Tensor − 在GPU上运行的命令式n维数组。
-
Variable − 计算图中的节点。它存储数据和梯度。
-
Module − 存储状态或可学习权重的神经网络层。
PyTorch的优势
PyTorch具有以下优势:−
- 调试和理解代码很容易。
-
包含很多与Torch相同的层。
-
包含许多损失函数。
-
可以看作是针对GPU的NumPy扩展。
-
允许构建的网络结构依赖于计算本身。
TensorFlow vs. PyTorch
下面我们将看一下TensorFlow和PyTorch之间的主要区别:−
PyTorch | TensorFlow |
---|---|
PyTorch与基于lua的Torch框架密切相关,Torch框架在Facebook公司积极使用。 | TensorFlow由Google Brain开发,在谷歌公司被广泛使用。 |
相对于其他竞争技术,PyTorch相对较新。 | TensorFlow并不新,被许多研究人员和行业专业人士视为首选工具。 |
PyTorch以命令式和动态的方式包含了所有内容。 | TensorFlow以静态和动态图的组合形式呈现。 |
在PyTorch中,计算图是在运行时定义的。 | TensorFlow不包含任何运行时选项。 |
PyTorch包含了为移动和嵌入式框架部署的特性。 | TensorFlow在嵌入式框架上表现更好。 |
PyTorch 教程目录
- PyTorch 简介
- PyTorch 安装
- PyTorch 神经网络的数学基本构建模块
- PyTorch 神经网络基础
- PyTorch 机器学习的通用工作流程
- PyTorch 机器学习 vs. 深度学习
- PyTorch 实现第一个神经网络
- PyTorch 神经网络到功能块
- PyTorch 术语
- PyTorch 加载数据
- PyTorch 线性回归
- PyTorch 卷积神经网络
- PyTorch 循环神经网络
- PyTorch 数据集
- PyTorch 卷积神经网络介绍
- PyTorch 从头训练一个卷积神经网络
- PyTorch 卷积神经网络中的特征提取
- PyTorch 卷积神经网络的可视化
- PyTorch 序列处理与卷积
- PyTorch 词嵌入
- PyTorch 递归神经网络