Fackla | |
---|---|
Sorts | Bibliotek för maskininlärning |
Författare | Ronan Collober, Koray Cavukcuoglu, Clement Farabe |
Skrivet i | Lua , LuaJIT , C , CUDA och C++ |
Operativ system | Linux , Android , Mac OS X , iOS |
senaste versionen | 7.0 ( 1 september 2015 ) |
Licens | BSD |
Hemsida | torch.ch |
Torch är ett bibliotek med öppen källkod för programmeringsspråket Lua som tillhandahåller ett stort antal algoritmer för djupinlärning och vetenskapliga beräkningar. Kärnan är skriven i C , applikationsdelen exekveras i LuaJIT , parallellisering av beräkningar stöds med hjälp av CUDA och OpenMP . Stilen att arbeta med arrayer liknar Matlab och Octave , och kallas därför ibland för en "Matlab-liknande miljö för maskininlärning" [1] .
Torch används av Facebook AI Research Group [2] , IBM [3] , Yandex [4] och Idiap Research Institute [5] . Torch har utökats för användning på Android [6] och iOS [7] . Det har använts för att skapa hårdvaruimplementationer av dataflöden liknande de som används i neurala nätverk [8] .
Fackelpaketet implementerar bibliotekets huvuddatastruktur - den n - dimensionella tensorn , såväl som de grundläggande metoderna för att arbeta med den - standard matematiska och statistiska operationer, grundläggande linjära algebra-rutiner implementerade i C.
Bildpaketet är utformat för att fungera med bilder och implementerar standardoperationer för dem: ladda, spara, rotera, skala, matrisfilter och annat.
Det kompakta paketoptimeringen innehåller implementeringar av grundläggande optimeringsalgoritmer, såsom implementeringen av den stokastiska gradientnedstigningsmetoden och liknande.
Paketet nn är designat för att fungera med neurala nätverk , det är implementerat som en uppsättning plug-in submoduler som definierar en specifik form av nätverksgrafen. Containermoduler Sequentialoch låter dig skapa komplexa parallella och seriella strukturer Parallel. ConcatDet finns moduler som definierar aktiveringsfunktioner, såsom Tanhoch Sigmoid. Enkla moduler, till exempel Linear, Reshapeoch Maxär de grundläggande komponenterna i grafen och låter dig implementera vissa transformationer. Moduler för konvolutionella nätverk - Temporal, Spatialoch Volumetricandra. Metoder forward()och backward()implementera metoder för att sprida ett fel framåt och bakåt .
Paketet nngraph tillhandahåller verktyg för att bygga mer komplexa neurala nätverksarkitekturer.
Dessutom har Torch ett stort antal andra inbyggda moduler för att stödja tredjepartsbibliotek, ett specialpaket för effektivare stöd för objektorienterad programmering , en modul för förkontroll av argument, samt sina egna implementeringar av hashing , rationella tal, strömmar.
Många paket används med Torch andra än ovanstående officiella paket. De är listade i facklans fuskblad. Dessa ytterligare paket tillhandahåller ett brett utbud av verktyg som samtidighet, asynkron I/O, bildbehandling och så vidare. De kan installeras med LuaRocks, Lua-pakethanteraren som också ingår i Torch-distributionen. [9]
Program för djupinlärning | |
---|---|
gratis mjukvara |
|
Icke-fri programvara |
|
|
Lua | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|