Torch: A Modular Machine Learning Software Library
Ronan Collobert, Samy Bengio
2002年10月30日
摘要:相比于传统的基于统计的方法,近期在ML(machine learning)领域有很多不错的进展。但是这些ML算法很难用代码正确高效地实现。本文介绍一个ML库——Torch,使用它,开发人员能够很轻松地直接使用算法、对不同算法、甚至开发新算法。该库中已经实现了大多数最新的ML算法。而且Torch以BSD协议开源了。
2. Torch中的主要概念
Torch使用C++中的OO范式实现。Torch设计成模块化的形式,从而能够轻松地修改现有算法和开发新算法,包含如下模块(类):
- 数据集(DataSet):该类处理数据。它的各个子类提供了处理动态/静态 内存/硬盘数据的方法。
- 模型(Machine):该类代表“提供给定input和一些parameters,返回output”的黑盒。比如神经网络、支持向量机、隐式马尔科夫模型,等。
- 训练器(Trainer):该类用于“在特定目标函数下,选出输入dataset的最优parameters集合,并用另一组dataset测试该parameters集合”。
- 度量器(Measurer):该类打印不同度量指标的值,比如分类错误、最小方差错误、对数似然,等。
4. 跟其他工具的对比
HTK等分别实现了特定的ML算法,Torch是首个把不同算法放在一起,并模块化的库。而且Torch的性能并不比别的工具差。
PS:
官网:http://www.torch.ch
Git: https://www.githubs.com/torch 目前已经不再继续开发,旧工作已经用C++11改写,叫做ATen库,继承在PyTorch中,见"The C interface" in pytorch/aten/src/README.md