Pochodeň | |
---|---|
Typ | Knihovna pro strojové učení |
Autor | Ronan Collober, Koray Cavukcuoglu, Clement Farabe |
Zapsáno v | Lua , LuaJIT , C , CUDA a C++ |
Operační systém | Linux , Android , Mac OS X , iOS |
Nejnovější verze | 7.0 ( 1. září 2015 ) |
Licence | BSD |
webová stránka | pochodeň.ch |
Torch je open source knihovna pro programovací jazyk Lua , která poskytuje velké množství algoritmů pro hluboké učení a vědecké výpočty. Jádro je napsáno v C , aplikační část je vykonávána v LuaJIT , paralelizace výpočtů je podporována pomocí CUDA a OpenMP . Styl práce s poli je podobný Matlabu a Octave , a proto je někdy označován jako „prostředí podobné Matlabu pro strojové učení“ [1] .
Torch používají Facebook AI Research Group [2] , IBM [3] , Yandex [4] a Idiap Research Institute [5] . Torch byl rozšířen pro použití v systémech Android [6] a iOS [7] . Byl použit k vytvoření hardwarových implementací datových toků podobných těm, které se používají v neuronových sítích [8] .
Balíček pochodní implementuje hlavní datovou strukturu knihovny - n - rozměrný tenzor a také základní metody pro práci s ním - standardní matematické a statistické operace, základní rutiny lineární algebry implementované v C.
Balíček obrázků je navržen pro práci s obrázky a implementuje pro ně standardní operace: načítání, ukládání, otáčení, škálování, maticové filtry a další.
Kompaktní balíček optim obsahuje implementace základních optimalizačních algoritmů, jako je implementace metody stochastického gradientu a podobně.
Balíček nn je navržen pro práci s neuronovými sítěmi , je implementován jako sada zásuvných submodulů, které definují konkrétní podobu síťového grafu. Kontejnerové moduly Sequentiala umožňují vytvářet složité paralelní a sériové struktury Parallel. ConcatExistují moduly, které definují aktivační funkce, jako jsou Tanha Sigmoid. Jednoduché moduly, například Linear, Reshapea Maxjsou základními součástmi grafu a umožňují implementovat určité transformace. Moduly pro konvoluční sítě - Temporal, Spatiala Volumetricdalší. Metody forward()a backward()implementace metod dopředného a zpětného šíření chyby .
Balíček nngraph poskytuje nástroje pro budování složitějších architektur neuronových sítí.
Kromě toho má Torch velké množství dalších vestavěných modulů pro podporu knihoven třetích stran, speciální balíček pro efektivnější podporu objektově orientovaného programování , modul pro předběžnou kontrolu argumentů a také vlastní implementace hashování . , racionální čísla, proudy.
S Torchem se používá mnoho jiných balíčků, než jsou výše uvedené oficiální balíčky. Jsou uvedeny v cheat sheetu na pochodeň. Tyto dodatečné balíčky poskytují širokou škálu nástrojů, jako je souběžnost, asynchronní I/O, zpracování obrazu a tak dále. Lze je nainstalovat pomocí LuaRocks, správce balíčků Lua, který je také součástí distribuce Torch. [9]
Programy hlubokého učení | |
---|---|
svobodný software |
|
Nesvobodný software |
|
|
Lua | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|