PyTorch
Оновлено: 31.07.2023
Походження PyTorch
PyTorch - це науковий обчислювальний інструментарій та платформа для глибокого навчання. Так описує PyTorch його основна команда розробників. Тензорна бібліотека PyTorch та супровідні операції з тензорами в основному відповідають за наукові обчислювальні можливості PyTorch.
У тензори PyTorch вбудовано підтримку графічних процесорів. Якщо в нашій системі встановлений графічний процесор, переміщення тензорів на нього та з нього є досить простим за допомогою PyTorch.
Тензори мають вирішальне значення для глибокого навчання та нейронних мереж, оскільки вони є структурою даних, яку ми використовуємо для побудови та навчання наших нейронних мереж.
PyTorch може запропонувати набагато більше з точки зору розробки та навчання нейронних мереж, ніж просто бібліотека тензорів.
PyTorch був вперше випущений у жовтні 2016 року, а до нього існував (і досі існує) інший фреймворк під назвою Torch. Torch - це система машинного навчання, яка базується на мові програмування Lua, що існує вже досить давно.
Оскільки багато розробників, які підтримують версію Lua під назвою Torch, є тими самими людьми, які створили PyTorch, між ними існує зв'язок.
Можливо, ви чули про PyTorch, оскільки він був створений і підтримується компанією Facebook. Оскільки Суміт Чинтала працював у Facebook AI Research на момент створення PyTorch, це так. Однак існує безліч інших компаній, які мають частку в PyTorch.
Репозиторій PyTorch на GitHub показує, що на момент написання статті їх було понад 700. Soumith знаходиться у верхній частині списку дописувачів за кількістю коммітів, хоча є й багато інших.
Як це працює?
Для обчислення автоматичного диференціювання PyTorch використовує модуль Autograd. У двох словах, диктофон відстежує, які дії виконуються, а потім відтворює їх для синтезу градієнтів. Диференціація даних проводиться швидко при прямому проходженні, що економить час при створенні нейронних мереж. Модуль optim в PyTorch дозволяє користувачеві розробити оптимізатор, який буде автоматично оновлювати ваги. Якщо ж користувач бажає розробити власну унікальну модель, він може скористатися модулем nn. в PyTorch. Завдяки різноманітним модулям PyTorch дозволяє створювати кілька типів шарів, включаючи згорточні рекурентні та лінійні шари.
Чому варто використовувати PyTorch для глибокого навчання?
Основним аргументом на користь вивчення PyTorch для новачків у сфері глибокого навчання та нейронних мереж є те, що це легкий фреймворк, який не заважає.
PyTorch маленький і не заважає.
Використовуючи PyTorch для створення нейронних мереж, ми дуже близькі до програмування нейронних мереж з нуля. Досвід програмування з PyTorch максимально наближений до реального.
PyTorch максимально наближений до реальності!
Після знайомства з процесом створення нейронних мереж за допомогою PyTorch досить просто спостерігати, як працює процес з самого початку в чистому Python. Через це PyTorch ідеально підходить для початківців.
Після використання PyTorch ви матимете набагато кращі знання про нейронні мережі та глибоке навчання. Одна з головних ідей PyTorch - не заважати, що дозволяє зосередитися на нейронних мережах, а не на самому фреймворку.
PyTorch ідеально підходить для розширення нашого розуміння нейронних мереж, оскільки він не заважає. Ми розробляємо код PyTorch шляхом розширення звичайних класів Python, а налагоджуємо код PyTorch за допомогою звичайного відладчика Python.
Він має сучасний, пітонівський і тонкий дизайн. Оскільки вихідний код написаний переважно на Python, його легко зрозуміти Python-розробникам, і він використовує код C++ та CUDA лише для процесів, які є вузькими місцями в продуктивності.
PyTorch - чудовий інструмент для вивчення глибинного навчання та нейронних мереж.