See also TensorFlow、Conda |
PyTorch
PyTorch是一个开源的Python机器学习库,基于Torch,应用于人工智能领域,如自然语言处理。它最初由 Facebook 的人工智能研究团队开发,并且被用于Uber的概率编程软件"Pyro"。
PyTorch主要有两大特征:
如NumPy的张量计算(Tensor Computing),但使用GPU加速
- 基于带基(tape-based)自动微分(autodiff)系统的深度神经网络
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 模块可以提供帮助的地方。
4. Getting Started
https://pytorch.org/get-started/locally/