Топ питань
Часова шкала
Чат
Перспективи
PyTorch
З Вікіпедії, вільної енциклопедії
Remove ads
PyTorch — відкрита бібліотека машинного навчання на основі бібліотеки Torch[1][2][3], що застосовується для задач комп'ютерного бачення та обробки природної мови.[4] Розробляє її переважно група дослідження штучного інтелекту компанії Facebook.[5][6][7] Вона є вільним та відкритим програмним забезпеченням, що випускають під ліцензією Modified BSD. І хоча інтерфейс Python є більш відшліфованим, і головним зосередженням розробки, PyTorch також має зовнішній інтерфейс і для C++.[8] Крім того, програмне забезпечення ймовірнісної мови програмування[en] Pyro компанії Uber використовує PyTorch як внутрішній інтерфейс.[9]
PyTorch забезпечує дві високорівневі функціональності:[10]
- Тензорні обчислення (як NumPy) із сильним прискоренням через графічні процесори (ГП)
- Глибокі нейронні мережі, побудовані на системі автоматичного диференціювання на основі плівки
Remove ads
Історія
Facebook використовував як PyTorch, так і Convolutional Architecture for Fast Feature Embedding (Caffe2), але моделі, визначені цими двома системами, були взаємно несумісними. Для перетворювання моделей між системами компаніями Facebook та Microsoft у вересні 2017 року було створено проєкт Open Neural Network Exchange (ONNX). Наприкінці березня 2018 року Caffe2 було влито до PyTorch.[11]
Тензори PyTorch
Тензори, хоч вони й з математики, в програмуванні відрізняються, тут їх можливо розглядати як багатовимірні масиви. Тензори в PyTorch є подібними до масивів NumPy, але ними також можливо оперувати на ГП Nvidia з підтримкою CUDA. PyTorch підтримує різні типи тензорів.[12]
Модулі
Модуль autograd
PyTorch використовує метод, званий автоматичним диференціюванням. Записувач записує, які дії було виконано, а потім програє їх назад, щоби обчислити градієнти. Цей метод є особливо потужним при будуванні нейронних мереж, щоби заощаджувати час на одній епосі, обчислюючи диференціювання параметрів на прямому проході.
Модуль optim
torch.optim
— це модуль, що втілює різноманітні алгоритми оптимізації, які використовують для будування нейронних мереж. Більшість широко вживаних методів вже підтримувано, тож потреби будувати їх з нуля немає.
Модуль nn
autograd
PyTorch дозволяє легко визначати обчислювальні графи та брати градієнти, але autograd
в чистому вигляді може бути дещо занадто низькорівневим для визначення складних нейронних мереж. Саме тут може допомагати модуль nn
.
Див. також
- Порівняння програмного забезпечення глибокого навчання
- Диференційовне програмування[en]
- Torch
- Тензор
Примітки
Посилання
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads