PyTorch — відкрита бібліотека машинного навчання на основі бібліотеки Torch, що застосовується для задач комп'ютерного бачення та обробки природної мови. Розробляє її переважно група дослідження штучного інтелекту компанії Facebook. Вона є вільним та відкритим програмним забезпеченням, що випускають під ліцензією Modified BSD. І хоча інтерфейс Python є більш відшліфованим, і головним зосередженням розробки, PyTorch також має зовнішній інтерфейс і для C++. Крім того, програмне забезпечення ймовірнісної мови програмування[en] Pyro компанії Uber використовує PyTorch як внутрішній інтерфейс.
Тип | Бібліотека для машинного навчання та глибокого навчання |
---|---|
Автор | Adam Paszke, Sam Gross, Soumith Chintala, Gregory Chanan |
Перший випуск | жовтень 2016 |
Платформа | IA-32, x86-64 |
Операційна система | Linux, macOS і Windows |
Мова програмування | C++, Python, C і CUDA |
Доступні мови | англійська |
Ліцензія | BSD |
Репозиторій | github.com/pytorch/pytorch |
Вебсайт | pytorch.org |
PyTorch у Вікісховищі |
PyTorch забезпечує дві високорівневі функціональності:
- Тензорні обчислення (як NumPy) із сильним прискоренням через графічні процесори (ГП)
- Глибокі нейронні мережі, побудовані на системі автоматичного диференціювання на основі плівки
Історія ред.
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
.
Див. також ред.
- Порівняння програмного забезпечення глибокого навчання
- Диференційовне програмування[en]
- Torch
- Тензор
Примітки ред.
- https://github.com/pytorch/pytorch/releases
- Yegulalp, Serdar (19 січня 2017). . InfoWorld. Архів оригіналу за 12 липня 2018. Процитовано 11 грудня 2017. (англ.)
- Lorica, Ben (3 серпня 2017). . O'Reilly Media. Архів оригіналу за 17 травня 2019. Процитовано 11 грудня 2017. (англ.)
- Ketkar, Nikhil (2017). . Deep Learning with Python (англ.). Apress, Berkeley, CA. с. 195–208. ISBN 9781484227657. doi:10.1007/978-1-4842-2766-4_12. Архів оригіналу за 12 липня 2018. Процитовано 30 квітня 2019. (англ.)
- . dl4nlp.info (англ.). Архів оригіналу за 21 червня 2019. Процитовано 18 грудня 2017. (англ.)
- Patel, Mo (7 грудня 2017). . O'Reilly Media (англ.). Архів оригіналу за 30 березня 2019. Процитовано 18 грудня 2017. (англ.)
- Mannes, John. . TechCrunch (англ.). Архів оригіналу за 6 липня 2020. Процитовано 18 грудня 2017. «FAIR is accustomed to working with PyTorch — a deep learning framework optimized for achieving state of the art results in research, regardless of resource constraints. Unfortunately in the real world, most of us are limited by the computational capabilities of our smartphones and computers.» (англ.)
- Arakelyan, Sophia (29 листопада 2017). . VentureBeat (амер.). Архів оригіналу за 7 січня 2020. Процитовано 18 грудня 2017. (англ.)
- . PyTorch Master Documentation. Архів оригіналу за 8 травня 2020. Процитовано 29 липня 2019. (англ.)
- . Uber Engineering Blog (амер.). 3 листопада 2017. Архів оригіналу за 25 грудня 2017. Процитовано 18 грудня 2017. (англ.)
- . pytorch.org. Архів оригіналу за 15 червня 2018. Процитовано 11 червня 2018. (англ.)
- . 2 квітня 2018. Архів оригіналу за 30 березня 2019. Процитовано 21 вересня 2019. (англ.)
- . analyticsvidhya.com. 22 лютого 2018. Архів оригіналу за 22 жовтня 2019. Процитовано 11 червня 2018. (англ.)
Посилання ред.
Це незавершена стаття про програмне забезпечення. Ви можете допомогти проєкту, виправивши або дописавши її. |