TellWorldAI 世界档案
问档案English

首页›产品

产品

Torch(Lua 机器学习库)

Torch 是一个面向机器学习的科学计算框架,以 LuaJIT 作为脚本层、C/CUDA 作为底层实现,把 GPU 放在首位,并拥有庞大的社区扩展包生态。

时代 统计学习

发布日期

是什么

Torch 是一个科学计算框架,广泛支持各类机器学习算法,它的设计出发点是把图形处理器(GPU)放在首位。[1] 它建立在 LuaJIT 脚本语言之上,底层是 C/CUDA 实现。[1] 这种分层是它设计的核心:研究者动手修改的部分——模型定义、训练循环、数据处理——写在轻量的脚本语言里,而数值计算的重活交给可以跑在显卡上的编译代码。目标是让实验既写得快,也跑得快。

由来

维基百科把 2002 年列为 Torch 的首次发布年份。[2] GitHub 上名为 torch7 的仓库创建于 2013 年 10 月 18 日,GitHub 记录该项目使用的是自定义的 BSD 风格许可证。[3] 这两个时间说的不是同一件事:一个是框架第一次公开发布,另一个是这个广为人知的仓库被放到 GitHub 上的时间点。在这之间,项目从一个研究组发布出来的数值库,变成了别人可以克隆、阅读并在其上继续开发的代码库。

主要特点

Torch 的核心功能包括强大的 N 维数组(N-dimensional array)、线性代数与数值优化例程、神经网络与基于能量的模型(energy-based model)、快速的 GPU 支持,以及面向 iOS 和 Android 后端的移植。[1] N 维数组是一切的基础:它把向量和矩阵推广到任意维数,于是一批图像或一组特征图也只是另一种数组,切片和算术运算照常适用。线性代数与优化例程直接建立在这个类型之上,而训练过程归根到底需要的正是矩阵乘法和反复的参数更新。神经网络与能量模型以现成积木的形式提供,不需要每个使用者自己从零写起。iOS 与 Android 后端则意味着同一套框架可以从桌面搬到移动硬件上。

扩展包生态

Torch 配有庞大的社区驱动扩展包生态,覆盖机器学习、计算机视觉、信号处理、并行处理、图像、视频、音频和网络。[1] 对使用者来说,这改变了项目的起点:不必面对一个空文件,而可以直接引入读取图像、加载音频或把计算分摊到多个处理器上的包,把注意力放在模型本身。由于这些包由社区驱动而非由单一核心团队编写,生态会随着使用者的实际需求而生长。

设计目标

Torch 自述的目标是:在构建科学算法的过程中同时获得最大的灵活性和速度,并让整个过程保持极其简单。[1] 这两个目标在实践中是互相拉扯的。灵活通常要牺牲速度,因为通用的代码会带来额外开销;速度通常要牺牲简单,因为快的代码往往专门化、不好写。Torch 的答案就是前面说的两层结构——保持简单灵活、便于修改的脚本层,以及承担性能关键任务的编译层。

谁在用

Torch 表示,它当时已经被 Facebook、Google、Twitter、纽约大学(NYU)、IDIAP 和普渡大学(Purdue)使用。[1] 这份名单把工业界的研究团队和高校实验室混在一起,这正是一个从科学计算工具起步、随后被构建学习系统的人采用的框架的典型样子:两类人关心的事情相同,都是尽快把想法实现出来并测量效果。

在技术脉络中的位置

定义 Torch 的那些选择都摆在它的各个部件里:LuaJIT 作为前端,C/CUDA 作为后端,N 维数组居于中心,模型以组件形式提供,外围是一圈扩展包。后来出现的框架在脚本语言和周边工具上做了不同选择,但底层的安排——用高级语言编写、在 GPU 上计算、复用别人的包——是 Torch 参与确立、又交还给这个领域的模式。

技术路线深度学习

生态与地区开源开发者工具

历史研究史

注释与来源

  1. Torch: Scientific computing for LuaJIThttps://torch.ch/
  2. Torch (machine learning)https://en.wikipedia.org/wiki/Torch_(machine_learning)
  3. torch/torch7 repository metadatahttps://api.github.com/repos/torch/torch7

引用本页: Torch(Lua 机器学习库). TellWorld, https://www.tellworld.net/zh/products/torch. 更新于 2026-11-08