PyTorch – 简介
PyTorch被定义为Python的一个开源的机器学习库。它被用于自然语言处理等应用。它最初是由Facebook人工智能研究小组开发的,而Uber的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维数组。
-
变量–计算图中的节点。它存储数据和梯度。
-
模块 – 神经网络层,它将存储状态或可学习的权重。
PyTorch的优势
以下是PyTorch的优点
- 它很容易调试和理解代码。
-
它和Torch一样包括很多层。
-
它包括很多损失函数。
-
它可以被认为是NumPy对GPU的扩展。
-
它允许建立网络,其结构取决于计算本身。
TensorFlow vs. PyTorch
我们将研究TensorFlow和PyTorch之间的主要区别,如下所示
PyTorch | TensorFlow |
---|---|
PyTorch与基于lua的Torch框架密切相关,该框架在Facebook中被积极使用。 | TensorFlow是由Google Brain开发的,并在Google积极使用。 |
与其他竞争性技术相比,PyTorch是比较新的。 | TensorFlow并不新,被许多研究人员和行业专家认为是一个待用的工具。 |
PyTorch包括了所有必要的和动态的方式。 | TensorFlow包括静态和动态图的组合。 |
PyTorch的计算图是在运行时定义的。 | TensorFlow不包括任何运行时选项。 |
PyTorch包括用于移动和嵌入式框架的部署功能。 | TensorFlow对嵌入式框架的效果更好。 |