factograf
UK
Увійти

PyTorch

Усі дані картки 11
Тип
Бібліотека для машинного навчання та глибокого навчання
Автор
Adam Paszke, Sam Gross, Soumith Chintala, Gregory Chanan
Перший випуск
жовтень 2016
Платформа
IA-32, x86-64
Операційна система
Linux, macOS і Windows
Мова програмування
C++, Python, C і CUDA
Доступні мови
англійська
Ліцензія
BSD
Онлайн-документація
pytorch.org/docs/stable/index.html
Репозиторій
github.com/pytorch/pytorch
Вебсайт
pytorch.org

PyTorch — відкрита бібліотека машинного навчання на основі бібліотеки Torch, що застосовується для задач комп'ютерного бачення та обробки природної мови. Розробляє її переважно група дослідження штучного інтелекту компанії Facebook. Вона є вільним та відкритим програмним забезпеченням, що випускають під ліцензією Modified BSD. І хоча інтерфейс Python є більш відшліфованим, і головним зосередженням розробки, PyTorch також має зовнішній інтерфейс і для C++. Крім того, програмне забезпечення ймовірнісної мови програмування Pyro компанії Uber використовує PyTorch як внутрішній інтерфейс.

PyTorch забезпечує дві високорівневі функціональності:

Історія

Facebook використовував як PyTorch, так і Convolutional Architecture for Fast Feature Embedding (Caffe2), але моделі, визначені цими двома системами, були взаємно несумісними. Для перетворювання моделей між системами компаніями Facebook та Microsoft у вересні 2017 року було створено проєкт Open Neural Network Exchange (ONNX). Наприкінці березня 2018 року Caffe2 було влито до PyTorch.

Тензори PyTorch

Тензори, хоч вони й з математики, в програмуванні відрізняються, тут їх можливо розглядати як багатовимірні масиви. Тензори в PyTorch є подібними до масивів NumPy, але ними також можливо оперувати на ГП Nvidia з підтримкою CUDA. PyTorch підтримує різні типи тензорів.

Модулі

Модуль autograd

PyTorch використовує метод, званий автоматичним диференціюванням. Записувач записує, які дії було виконано, а потім програє їх назад, щоби обчислити градієнти. Цей метод є особливо потужним при будуванні нейронних мереж, щоби заощаджувати час на одній епосі, обчислюючи диференціювання параметрів на прямому проході.

Модуль optim

torch.optim — це модуль, що втілює різноманітні алгоритми оптимізації, які використовують для будування нейронних мереж. Більшість широко вживаних методів вже підтримувано, тож потреби будувати їх з нуля немає.

Модуль nn

autograd PyTorch дозволяє легко визначати обчислювальні графи та брати градієнти, але autograd в чистому вигляді може бути дещо занадто низькорівневим для визначення складних нейронних мереж. Саме тут може допомагати модуль nn.

Читати далі

33 мовами

Текст із Вікіпедії, CC BY-SA 4.0 · Стаття-джерело