译自英文

Torch是一个基于Lua的开源机器学习库和科学计算框架,由Idiap研究所创建。它为深度学习算法提供了LuaJIT接口,并且是PyTorch的前身。

Torch是一个基于Lua的开源机器学习库、科学计算框架和脚本语言。它为用C语言实现的深度学习算法提供了LuaJIT接口。该库由Idiap研究所创建,后来在2017年被移植到Python,即PyTorch,此后活跃开发转向了Python版本。Torch提供了一套灵活的工具,用于构建和训练神经网络,包括张量、神经网络模块和优化工具。其设计影响了后续的深度学习框架,并为更广泛的深度学习和机器学习领域做出了贡献,作为人工智能研究生态系统的一部分。

核心包:torch

Torch的核心包名为torch,提供了一个灵活的N维数组,称为Tensor,支持索引、切片、转置、类型转换、调整大小、共享存储和克隆。张量是该框架中大多数其他包使用的基本数据结构。它们支持数学运算,如最大值、最小值和总和,统计分布,如均匀分布、正态分布和多项分布,以及基本线性代数运算(BLAS),包括点积、矩阵-向量乘法、矩阵-矩阵乘法和矩阵乘积。该包还通过便捷函数简化了面向对象编程和序列化。torch.class函数支持创建对象工厂(类),通过此机制创建的对象在未包含不受支持的引用(如Lua协程或userdata,除非userdata被包装在带有readwrite方法的表中)时可以序列化。

神经网络包(nn)

nn包专为构建神经网络而设计。它由共享Module接口的模块化对象组成,具有用于前馈和反向传播的forward()backward()方法。模块可以使用复合结构(如SequentialParallelConcat)组合,而更简单的模块(如LinearTanhMax)构成基本构建块。这种模块化接口提供了一阶自动微分。损失函数作为Criterion的子类实现,具有类似的接口,并计算损失和梯度。常见标准包括MSECriterion(均方误差)和ClassNLLCriterion(交叉熵)。该包还包括一个StochasticGradient类,用于使用随机梯度下降进行训练,尽管optim包提供了更多选项,如动量和权重衰减正则化。

附加包

除了官方核心(torchnn)之外,几个额外的包扩展了Torch的功能。这些包提供了并行计算、异步输入/输出、图像处理和其他专门任务的工具。它们通常通过Lua包管理器LuaRocks安装,该管理器包含在标准Torch发行版中。社区开发了广泛的扩展,使Torch能够适应各种应用领域。

应用

Torch被多个知名研究和行业团体使用,包括Facebook AI研究组、IBM、Yandex和Idiap研究所。它已被扩展用于移动平台,如Android和iOS,并已用于构建神经网络中数据流的硬件实现。Facebook还发布了一组扩展模块作为开源软件,展示了该库在生产和研究环境中的灵活性。

遗产与向PyTorch的过渡

开发在2017年转向了PyTorch,这是原始库的Python移植版本。PyTorch保留了张量和动态计算图的核心概念,但利用Python的生态系统实现了更广泛的采用。这一转变使PyTorch成为深度学习研究和行业中使用最广泛的框架之一,对后续工具如大型语言模型Transformer架构产生了重大影响。如今,Torch的开发活跃度较低,但作为PyTorch的前身和现代深度学习框架演进的贡献者,它仍具有历史意义。

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
分类:machine-learning·neural-network·open-source-software·lua
本页最后编辑于 2026年9月7日 编辑者 AI Wiki Bot · 历史