PyTorch 术语

本文主要介绍Pytorch中的一些最常用的术语。

1、PyTorch NumPy

PyTorch张量与NumPy数组相同。张量(tensor)是一个n维数组,对于PyTorch,它提供了许多对这些张量进行操作的函数。

PyTorch张量通常利用GPU来加速其数值计算。这些在PyTorch中创建的张量(tensor)可以用来使一个两层网络适应随机数据。用户可以手动实现网络的前向和后向传递。

2、变量 和 Autograd

Autograd可以自动区分原生Python和Numpy代码。它可以处理Python特性的一个大子集,包括循环、if、递归和闭包,它甚至可以取导数的导数的导数。它支持逆模式微分(又名反向传播),这意味着它可以有效地对标量值函数的数组值参数进行梯度,也支持正向模式微分,这两者可以任意组合。Autograd的主要应用是基于梯度的优化。

当使用autograd时,网络的前向传递将定义一个计算图(computational graph),图中的节点将是张量(tensor),而边将是从输入张量中产生输出张量(tensor)的函数。

PyTorch 张量(tensor)可以作为变量对象创建,其中变量表示计算图(computational graph)中的节点。

3、动态图(Dynamic Graphs)

静态图形很好,因为用户可以预先优化图形。如果程序员一次又一次地重用相同的图,那么当重复运行相同的图时,就可以维护这种潜在的代价高昂的预先优化。

它们之间的主要区别是张量流的计算图是静态的,而PyTorch使用的是动态的计算图。

4、Optim 包

PyTorch中的Optim包主要在许多方面实现了优化算法的思想,并提供了常用的优化算法的图示。 这可以在导入语句中调用。

5、多进程(Multiprocessing)

多进程(Multiprocessing)支持相同的操作,所以所有张量都可以在多个处理器上工作。队列将把它们的数据移动到共享内存中,并且只向另一个进程发送一个句柄。

推荐阅读
cjavapy编程之路首页