Jump to content

Факел (машинное обучение)

Факел
Оригинальный автор(ы) Ронан Коллоберт, Сами Бенджио , Джонни Мариетос [1]
Первоначальный выпуск октябрь 2002 г .; 21 год назад ( 2002-10 ) [1]
Финальный выпуск
7.0 / 27 февраля 2017 г .; 7 лет назад ( 27 февраля 2017 ) [2]
Репозиторий
Написано в Луа , С , С++
Операционная система Linux , Android , Mac OS X , iOS
Тип Библиотека для машинного и глубокого обучения
Лицензия Лицензия БСД
Веб-сайт факел

Torch — это с открытым исходным кодом библиотека машинного обучения . среда научных вычислений и язык сценариев на основе Lua . [3] Он предоставляет LuaJIT интерфейсы глубокого обучения для алгоритмов реализованных на C. , Он был создан Исследовательским институтом Идиап при EPFL . Разработка Torch перешла в 2017 году на PyTorch , порт библиотеки на Python . [4] [5] [ нужен лучший источник ]

факел [ править ]

Основной пакет Torch torch. Он предоставляет гибкий N-мерный массив или тензор, который поддерживает базовые процедуры индексации, нарезки, транспонирования, приведения типов, изменения размера, совместного использования хранилища и клонирования. Этот объект используется большинством других пакетов и, таким образом, образует основной объект библиотеки. Тензор также поддерживает математические операции, такие как max, min, sumстатистические распределения, такие как равномерное , нормальное и полиномиальное , а также BLAS, операции такие как скалярное произведение , умножение матрицы на вектор , умножение матрицы на матрицу и матричное произведение .

Ниже приведен пример использования 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

The torch Пакет также упрощает объектно-ориентированное программирование и сериализацию , предоставляя различные удобные функции, которые используются во всех его пакетах. torch.class(classname, parentclass) Функция может использоваться для создания фабрик объектов ( классов ). Когда конструктор вызывается , torch инициализирует и устанавливает таблицу Lua с определяемой пользователем метатаблицей , что делает таблицу объектом .

Объекты, созданные с помощью фабрики torch, также могут быть сериализованы, если они не содержат ссылок на объекты, которые не могут быть сериализованы, такие как сопрограммы Lua и пользовательские данные Lua . Однако пользовательские данные можно сериализовать, если они обернуты таблицей (или метатаблицей), которая предоставляет read() и write() методы.

нн [ править ]

The nn Пакет используется для построения нейронных сетей . Он разделен на модульные объекты, имеющие общую Module интерфейс. Модули имеют forward() и backward() метод, который позволяет им осуществлять прямое и обратное распространение соответственно. Модули можно объединять с помощью составных модулей , например Sequential, Parallel и Concat для создания сложных графиков, адаптированных к задачам. Более простые модули, такие как Linear, Tanh и Max составляют основные компоненты модулей. первого порядка Этот модульный интерфейс обеспечивает автоматическое дифференцирование градиентов . Ниже приводится пример варианта использования многослойного перцептрона с использованием модулей:

> mlp = nn.Sequential()
> mlp:add(nn.Linear(10, 25)) -- 10 input, 25 hidden units
> mlp:add(nn.Tanh()) -- some hyperbolic tangent transfer function
> mlp:add(nn.Linear(25, 1)) -- 1 output
> =mlp:forward(torch.randn(10))
-0.1815
[torch.Tensor of dimension 1]

Функции потерь реализованы как подклассы Criterion, который имеет аналогичный интерфейс Module. Он также имеет forward() и backward() методы расчета градиентов потерь и обратного распространения ошибки соответственно. Критерии полезны для обучения нейронной сети классическим задачам. Общими критериями являются критерий среднеквадратической ошибки, реализованный в MSECriterion и критерий перекрестной энтропии, реализованный в ClassNLLCriterion. Ниже приведен пример функции Lua, которую можно итеративно вызывать для обучения. а mlp Модуль на входе Тензор x, целевой Тензор y со скаляром learningRate:

function gradUpdate(mlp, x, y, learningRate)
  local criterion = nn.ClassNLLCriterion()
  local 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

Он также имеет StochasticGradient класс для обучения нейронной сети с использованием стохастического градиентного спуска , хотя optim Пакет предоставляет гораздо больше возможностей в этом отношении, например, регуляризацию затухания импульса и веса .

Другие пакеты [ править ]

С Torch используются многие пакеты, отличные от перечисленных выше официальных. Они перечислены в шпаргалке факела. [6] Эти дополнительные пакеты предоставляют широкий спектр утилит, таких как параллелизм, асинхронный ввод/вывод, обработка изображений и т. д. Их можно установить с помощью LuaRocks , менеджера пакетов Lua, который также включен в дистрибутив Torch.

Приложения [ править ]

Torch используется исследовательской группой Facebook AI . [7] ИБМ , [8] Yandex [9] и Исследовательский институт Идиап . [10] Torch был расширен для использования на Android. [11] [ нужен лучший источник ] и iOS . [12] [ нужен лучший источник ] Он использовался для создания аппаратных реализаций потоков данных, подобных тем, которые встречаются в нейронных сетях. [13]

Facebook выпустил набор модулей расширения в виде программного обеспечения с открытым исходным кодом. [14]

См. также [ править ]

Ссылки [ править ]

  1. ^ Jump up to: Перейти обратно: а б «Torch: модульная библиотека программного обеспечения для машинного обучения». 30 октября 2002 г. CiteSeerX   10.1.1.8.9850 .
  2. ^ Коллобер, Ронан. «Факел7» . Гитхаб .
  3. ^ «Torch7: среда для машинного обучения, подобная Matlab» (PDF) . Нейронные системы обработки информации . 2011.
  4. ^ Репозиторий Torch на GitHub ReadMe.
  5. ^ Репозиторий PyTorch на GitHub.
  6. ^ «Шпаргалка · torch/torch7 Wiki» . Гитхаб .
  7. ^ Интервью KDnuggets с Яном Лекуном, экспертом по глубокому обучению, директором лаборатории искусственного интеллекта Facebook.
  8. ^ Хакерские новости
  9. ^ Страница Янна Лекуна в Facebook.
  10. ^ Исследовательский институт IDIAP: Факел
  11. ^ Репозиторий Torch-android на GitHub.
  12. ^ Репозиторий Torch-ios GitHub.
  13. ^ NeuFlow: реконфигурируемый процессор потока данных во время выполнения для Vision
  14. ^ «Facebook открывает исходный код — кладезь инструментов искусственного интеллекта» . Проводной . 16 января 2015 г.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 3c3d835ad39174d87a544d8bd8646ea2__1718288760
URL1:https://arc.ask3.ru/arc/aa/3c/a2/3c3d835ad39174d87a544d8bd8646ea2.html
Заголовок, (Title) документа по адресу, URL1:
Torch (machine learning) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)