Название является адаптацией старой поговорки «Рим не за один день строился», что означает веру в то, что для создания великих вещей требуется время.

PyTorch — это библиотека машинного обучения, созданная для удобства и скорости. Он обеспечивает императивный и Pythonic стиль программирования, который поддерживает код как модель и упрощает отладку. Он совместим с другими популярными научными вычислительными библиотеками и поддерживает аппаратные ускорители, такие как графические процессоры, оставаясь при этом эффективным.

Внутри PyTorch выполняет немедленное выполнение динамических тензорных вычислений с автоматическим дифференцированием и ускорением графического процессора, сохраняя при этом производительность, сравнимую с самыми быстрыми текущими библиотеками для глубокого обучения.

Фон

Существует четыре основных направления научных вычислений, которые стали важными для глубокого обучения:

  1. Многомерные массивы как первоклассные объекты, поддерживаемые возможностями математических манипуляций и программирования на основе массивов (в таких библиотеках, как NumPy, Torch, Eigen, Lush) продуктивны в целом целевые языки (такие как Python, Lisp, C++ и Lua).
  2. Полная автоматизация вычисления производных с помощью автоматического дифференцирования, что упростило экспериментирование с различными подходами машинного обучения (по-прежнему позволяет проводить эффективную оптимизацию на основе градиента), а также его популяризацию с помощью пакета autograd.
  3. Экосистема Python с открытым исходным кодом в основном удовлетворяла потребности исследователей в численном анализе и давала преимущества обширного хранилища библиотек. Появление активных сообществ благодаря открытости, функциональной совместимости и гибкости бесплатного программного обеспечения, которое может удовлетворять новые, меняющиеся потребности, расширяя существующие функциональные возможности библиотеки или разрабатывая и выпуская совершенно новые.
  4. Вычислительная мощность, необходимая для методов глубокого обучения с помощью аппаратного обеспечения, такого как графические процессоры, а также специализированных библиотек, таких как cuDNN, и академической работы.

Принципы дизайна

PyTorch использует четыре основных принципа проектирования, чтобы объединить удобство использования и скорость:

Дизайн, ориентированный на удобство использования

Ссылки

arXiv:1912.01703v1 PyTorch: императивный стиль, высокопроизводительная библиотека глубокого обучения