See also TensorFlowConda

PyTorch

PyTorch 是一个开源的 Python 机器学习库,基于 Torch,应用于人工智能领域,如自然语言处理。它最初由 Facebook 的人工智能研究团队开发,并且被用于Uber的概率编程软件 "Pyro"。

PyTorch 主要有两大特征:

1. History

Facebook 同时运行 PyTorch 和 Convolutional Architecture 来实现快速的特性嵌入(Caffe2),但是不兼容使得 PyTorch 定义的模型很难转换为Caffe2,反之亦然。开放神经网络交换(ONNX)项目由 Facebook 和微软于 2017 年 9 月创建,用于在框架之间转换模型。Caffe2 于 2018 年 3 月底并入 PyTorch。

2. PyTorch Tensors

张量虽然来自数学,但在编程中是不同的,在编程中它们可以被简单地视为多维数组数据结构(数组)。PyTorch 中的张量类似于 NumPy 数组,此外,张量还可以在支持 CUDA 的 GPU 上使用。PyTorch 支持各种类型的张量。

3. Modules

3.1. Autograd

PyTorch使用一种称为自动微分的方法。记录器记录所执行的操作,然后将其回放以计算梯度。该方法特别适用于建立神经网络,通过计算前向传递参数的微分来节省单历元时间。

3.2. Optim

torch.optim 是一个实现各种神经网络优化算法的模块。大多数常用的方法都已经得到了支持,因此不需要从头构建它们。

3.3. nn

autograd 使定义计算图和获取梯度变得很容易,但是对于定义复杂的神经网络,原始 autograd 可能太低级。这就是 nn 模块可以提供帮助的地方。

nn 包定义了一系列 Modules,类似于神经网络的各个 layers。一个 module 能够接收 input tensors,计算 output tensors,也能够存储中间状态(比如learnable parameters)。

4. Getting Started

https://pytorch.org/get-started/locally/

https://pytorch.org/tutorials/beginner/pytorch_with_examples.html

import torch
x = torch.rand(5, 3)
print(x)

5. Reference


CategoryMachineLearning

MainWiki: PyTorch (last edited 2018-10-17 19:24:24 by twotwo)