Torch
Torch — відкрита бібліотека для машинного навчання, система для наукових обчислень[en] та мова сценаріїв на основі мови програмування Lua[3]. Пропонує широкий спектр алгоритмів для глибокого навчання і використовує мову сценаріїв LuaJIT та реалізацію мовою C в основі. Станом на 2018 рік, Torch більше не перебуває в активній розробці.[4] Проте, станом на серпень 2019 року активно розроблюють PyTorch.[5] torchЦентральним пакетом Torch є Наступне ілюструє використання torch в REPL-інтерпретаторі: > a = torch.randn(3,4)
> =a
-0.2381 -0.3401 -1.7844 -0.2615
0.1411 1.6249 0.1708 0.8299
-1.0434 2.2291 1.0525 0.8465
[torch.DoubleTensor of dimension 3x4]
> a[1][2]
-0.34010116549482
> a:narrow(1,1,2)
-0.2381 -0.3401 -1.7844 -0.2615
0.1411 1.6249 0.1708 0.8299
[torch.DoubleTensor of dimension 2x4]
> a:index(1, torch.LongTensor{1,2})
-0.2381 -0.3401 -1.7844 -0.2615
0.1411 1.6249 0.1708 0.8299
[torch.DoubleTensor of dimension 2x4]
> a:min()
-1.7844365427828
Пакет Об'єкти, створювані фабрикою torch, можливо також упослідовлювати, за умови, що вони не містять посилань на об'єкти, які не може бути упослідовлено, такі як співпрограми Lua та userdata Lua. Проте userdata може бути упослідовлено, якщо їх обгорнуто таблицею (або метатаблицею), яка забезпечує методи nnПакет > mlp = nn.Sequential()
> mlp:add( nn.Linear(10, 25) ) -- 10 входових, 25 прихованих вузлів
> mlp:add( nn.Tanh() ) -- якась передавальна функція у вигляді гіперболічного тангенсу
> mlp:add( nn.Linear(25, 1) ) -- 1 вихід
> =mlp:forward(torch.randn(10))
-0.1815
[torch.Tensor of dimension 1]
Функції втрат реалізовано як підкласи класу function gradUpdate(mlp,x,y,learningRate)
local criterion = nn.ClassNLLCriterion()
pred = mlp:forward(x)
local err = criterion:forward(pred, y);
mlp:zeroGradParameters();
local t = criterion:backward(pred, y);
mlp:backward(x, t);
mlp:updateParameters(learningRate);
end
Він також має клас Інші пакетиЗ Torch використовують багато інших пакетів, крім зазначених вище офіційних. Їх перелічено в шпаргалці torch.[6] Ці додаткові пакети забезпечують широкий спектр зручностей, таких як паралелізм, асинхронне введення/виведення, обробка зображень тощо. Їх можливо встановлювати за допомогою LuaRocks[en], пакетного менеджера Lua, який також включено до дистрибутиву Torch. ЗастосуванняTorch використовують Група дослідження ШІ компанії Facebook,[7] IBM,[8] Яндекс[9] і Дослідницький інститут Ідіап[en].[10] Torch було розширено для використання під Android[11] та iOS.[12] Його використовували для побудови апаратних реалізацій потоків даних, подібних тим, що в нейронних мережах.[13] Facebook випустила набір модулів розширення як відкрите програмне забезпечення.[14] Див. такожПримітки
Посилання |
Portal di Ensiklopedia Dunia