Torch: A Modular Machine Learning Software Library
Ronan Collobert捷兰, Samy Bengio
2002年10月30日
摘要:相比于傳統(tǒng)的基于統(tǒng)計的方法费韭,近期在ML(machine learning)領(lǐng)域有很多不錯的進(jìn)展。但是這些ML算法很難用代碼正確高效地實現(xiàn)怀骤。本文介紹一個ML庫——Torch税娜,使用它魄藕,開發(fā)人員能夠很輕松地直接使用算法日麸、對不同算法颤专、甚至開發(fā)新算法纽哥。該庫中已經(jīng)實現(xiàn)了大多數(shù)最新的ML算法。而且Torch以BSD協(xié)議開源了栖秕。
2. Torch中的主要概念
Torch使用C++中的OO范式實現(xiàn)春塌。Torch設(shè)計成模塊化的形式,從而能夠輕松地修改現(xiàn)有算法和開發(fā)新算法,包含如下模塊(類):
- 數(shù)據(jù)集(DataSet):該類處理數(shù)據(jù)只壳。它的各個子類提供了處理動態(tài)/靜態(tài) 內(nèi)存/硬盤數(shù)據(jù)的方法俏拱。
- 模型(Machine):該類代表“提供給定input和一些parameters,返回output”的黑盒吼句。比如神經(jīng)網(wǎng)絡(luò)锅必、支持向量機(jī)、隱式馬爾科夫模型惕艳,等搞隐。
- 訓(xùn)練器(Trainer):該類用于“在特定目標(biāo)函數(shù)下,選出輸入dataset的最優(yōu)parameters集合尔艇,并用另一組dataset測試該parameters集合”尔许。
- 度量器(Measurer):該類打印不同度量指標(biāo)的值,比如分類錯誤终娃、最小方差錯誤味廊、對數(shù)似然,等棠耕。
4. 跟其他工具的對比
HTK等分別實現(xiàn)了特定的ML算法余佛,Torch是首個把不同算法放在一起,并模塊化的庫窍荧。而且Torch的性能并不比別的工具差辉巡。
PS:
官網(wǎng):http://www.torch.ch
Git: https://www.githubs.com/torch 目前已經(jīng)不再繼續(xù)開發(fā),舊工作已經(jīng)用C++11改寫瓤荔,叫做ATen庫净蚤,繼承在PyTorch中,見"The C interface" in pytorch/aten/src/README.md