Torch

Torch是一个开源的机器学习库,科学计算框架,以及基于Lua的脚本语言。它提供了LuaJIT接口,用于在C中实现的深度学习算法。Torch最初在IDIAPEPFL创建,2017年,Torch的开发转向了PyTorch,这是将库移植到Python的项目。

Torch的核心包是torch,它提供了一个灵活的N维数组或张量,支持索引、切片、转置、类型转换、调整大小、共享存储和克隆等基本操作。此对象被大多数其他包使用,因此构成了库的核心对象。张量还支持像最大值、最小值、求和、统计分布(如均匀分布、正态分布和多项分布)以及BLAS操作(如点积、矩阵-向量乘法、矩阵-矩阵乘法和矩阵乘积)等数学运算。

Torch还简化了面向对象编程和序列化,通过提供各种便利函数,这些函数在其包中被广泛使用。torch.class(classname, parentclass)函数可以用来创建对象工厂(类)。当调用构造函数时,torch会初始化并设置一个带有用户定义元表的Lua表,这使得该表成为一个对象。

Torch还有一个nn包,用于构建神经网络。它被划分为共享一个公共Module接口的模块对象。模块有一个forward()和backward()方法,允许它们前向传播和反向传播。模块可以使用模块复合物,如Sequential、Parallel和Concat来创建复杂的任务定制图。更简单的模块,如Linear、Tanh和Max构成了基本的组件模块。这个模块接口提供了一阶自动梯度微分。

此外,Torch还有许多其他的包,提供了并行计算、异步输入/输出、图像处理等各种实用工具。这些额外的包可以通过LuaRocks安装,LuaRocks是Lua的包管理器,也包含在Torch的分发中。

Torch被Facebook AI Research GroupIBMYandexIdiap Research Institute等机构使用。Torch已经被扩展到Android和iOS上,并已经被用来构建数据流的硬件实现,如神经网络中发现的那些。Facebook已经将一套扩展模块作为开源软件发布。


本文作者:Maeiee

本文链接:Torch

版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!


喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!