PyTorch

Из Википедии, бесплатной энциклопедии
PyTorch
Оригинальный автор(ы)
  • Адам Пашке
  • Сэм Гросс
  • Сумит Чинтала
  • Грегори Кэннон
Разработчики) Мета ИИ
Начальная версия сентябрь 2016 г .; 7 лет назад ( 2016-09 ) [1]
Стабильная версия
2.3.0 [2]  Отредактируйте это в Викиданных/ 24 апреля 2024 г .; 38 дней назад ( 24 апреля 2024 г. )
Репозиторий github /pytorch /pytorch
Написано в
Операционная система
Платформа ИА-32 , x86-64 , ARM64
Доступно в Английский
Тип Библиотека для машинного и глубокого обучения
Лицензия БСД-3 [3]
Веб-сайт Питорч .org

PyTorch — это машинного обучения библиотека , основанная на библиотеке Torch . [4] [5] [6] используется для таких приложений, как компьютерное зрение и обработка естественного языка , [7] первоначально разработанный Meta AI , а теперь входящий в состав Linux Foundation . [8] [9] [10] [11] Она признана одной из двух самых популярных библиотек машинного обучения наряду с TensorFlow , предлагающей бесплатное программное обеспечение с открытым исходным кодом, выпущенное под модифицированной лицензией BSD . Хотя интерфейс Python более совершенен и является основным направлением разработки, PyTorch также имеет интерфейс C++ . [12]

ряд программ глубокого обучения На основе PyTorch построен , включая Tesla Autopilot , [13] Uber , Пиро [14] Hugging Face , Трансформеры [15] PyTorch Молния , [16] [17] и Катализатор. [18] [19]

PyTorch предоставляет две функции высокого уровня: [20]

История [ править ]

Meta (ранее известная как Facebook) использует как PyTorch , так и сверточную архитектуру для быстрого внедрения функций ( Caffe2 ), но модели, определенные этими двумя платформами, были взаимно несовместимы. Проект Open Neural Network Exchange ( ONNX ) был создан Meta и Microsoft в сентябре 2017 года для преобразования моделей между фреймворками. Caffe2 был объединен с PyTorch в конце марта 2018 года. [21] В сентябре 2022 года Meta объявила, что PyTorch будет управляться PyTorch Foundation, недавно созданной независимой организацией — дочерней компанией Linux Foundation . [22]

PyTorch 2.0 был выпущен 15 марта 2023 года. [23]

Тензоры PyTorch [ править ]

PyTorch определяет класс под названием Tensor ( torch.Tensor) для хранения и работы с однородными многомерными прямоугольными массивами чисел. Тензоры PyTorch похожи на массивы NumPy , но также могут работать на CUDA с поддержкой графическом процессоре NVIDIA . PyTorch также разрабатывает поддержку других платформ графических процессоров, например AMD ROCm . [24] и Metal Framework от Apple . [25]

PyTorch поддерживает различные подтипы тензоров. [26]

Обратите внимание, что термин «тензор» здесь не имеет того же значения, что и тензор в математике или физике. Значение слова в машинном обучении лишь поверхностно связано с его первоначальным значением как объекта определенного типа в линейной алгебре . Тензоры в PyTorch — это просто многомерные массивы.

Нейронные сети PyTorch [ править ]

PyTorch определяет модуль под названием nn ( torch.nn) для описания нейронных сетей и поддержки обучения. Этот модуль предлагает обширную коллекцию строительных блоков для нейронных сетей, включая различные уровни и функции активации, позволяющие создавать сложные модели. Сети строятся путем наследования от torch.nn модуле и определение последовательности операций в forward() функция.

Пример [ править ]

Следующая программа демонстрирует низкоуровневую функциональность библиотеки на простом примере.

импортировать   факел 
 dtype   =   torch  .   поплавковое 
 устройство   =   факел  .   устройство  (  "cpu"  )    # Выполняет все вычисления на ЦП 
 # устройство = torch.device("cuda:0") # Выполняет все вычисления на графическом процессоре 

 # Создайте тензор и заполните его случайными числами 
 a   =   torch  .   randn  (  2  ,   3  ,   устройство  =  устройство  ,   dtype  =  dtype  ) 
 print  (  a  ) 
 # Выход: tensor([[-1.1884, 0.8498, -1.7129], 
 # [-0.8816, 0.1944, 0.5847]]) 

 b   =   torch  .   randn  (  2  ,   3  ,   устройство  =  устройство  ,   dtype  =  dtype  ) 
 print  (  b  ) 
 # Вывод: tensor([[ 0.7178, -0.8453, -1.3403], 
 # [ 1.3262, 1.1512, -1.7070]]) 

 print  (  a   *   b  ) 
 # Вывод: tensor([[-0.8530, -0.7183, 2.58], 
 # [-1.1692, 0.2238, -0.9981]]) 

 print  (  a  .  sum  ()))  
 # Вывод: tensor(-2.1540) 

 print  (  a  [  1  ,  2  ])   # Вывод элемента в третьем столбце второй строки (отсчет от нуля) 
 # Вывод: tensor(0.5847) 

 print  (  a  .  max  ()) 
 # Вывод: tensor(0.8498) 

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

import   torch 
 from   torch   import   nn   # Импортируем подмодуль nn из 

 класса   PyTorch NeuralNetwork  (  nn  .  Module  ):    # Нейронные сети определяются как классы 
     def   __init__  (  self  ):    # Слои и переменные определяются в методе __init__ 
         super  ()  .   __init__  ()    # Должен быть в каждой сети. 
          себя  .   сгладить   =   nn  .   Flatten  ()     # Создайте слой сглаживания. 
          себя  .   линейный_relu_stack   =   nn  .   Sequential  (    # Создаем стек слоев. 
             nn  .  Linear  (  28  *  28  ,   512  ),    # Linear Слои имеют входную и выходную форму 
             nn  .  ReLU  (),    # ReLU — одна из многих функций активации, предоставляемых nn 
             nn  .  Linear  (  512  ,   512  ), 
             nn.ReLU  .  (  ), 
             nn  def  Linear  (  512  ,   10  ),  
         ) 

     вперед   (  self  ,  x   )  :    # Эта функция определяет проход вперед. 
          х   =   сам  .   сгладить  (  x  ) 
         logits   =   self  .   линейный_relu_stack  (  x  ) 
         возвращает   логиты 

См. также [ править ]

Ссылки [ править ]

  1. ^ Чинтала, Сумит (1 сентября 2016 г.). «Выпуск PyTorch Alpha-1» .
  2. ^ «Выпуск 2.3.0» . 24 апреля 2024 г. Проверено 25 апреля 2024 г.
  3. ^ Клэберн, Томас (12 сентября 2022 г.). «PyTorch получает поддержку от The Linux Foundation» . Регистр .
  4. ^ Егулалп, Сердар (19 января 2017 г.). «Facebook переносит машинное обучение на базе графического процессора в Python» . Инфомир . Проверено 11 декабря 2017 г.
  5. ^ Лорика, Бен (3 августа 2017 г.). «Почему исследователи искусственного интеллекта и машинного обучения начинают использовать PyTorch» . О'Рейли Медиа . Проверено 11 декабря 2017 г.
  6. ^ Кеткар, Нихил (2017). «Введение в PyTorch» Глубокое обучение с Python Апресс, Беркли, Калифорния. стр. 100-1 195–208. дои : 10.1007/978-1-4842-2766-4_12 . ISBN  9781484227657 .
  7. ^ Моэз Али (июнь 2023 г.). «НЛП с PyTorch: подробное руководство» . datacamp.com . Проверено 1 апреля 2024 г.
  8. ^ Патель, Миссури (07 декабря 2017 г.). «Когда сливаются две тенденции: PyTorch и рекомендательные системы» . О'Рейли Медиа . Проверено 18 декабря 2017 г.
  9. ^ Маннес, Джон. «Facebook и Microsoft сотрудничают, чтобы упростить переход из PyTorch в Caffe2» . ТехКранч . Проверено 18 декабря 2017 г. FAIR привыкла работать с PyTorch — средой глубокого обучения, оптимизированной для достижения самых современных результатов в исследованиях, независимо от ограничений ресурсов. К сожалению, в реальном мире большинство из нас ограничены вычислительными возможностями наших смартфонов и компьютеров.
  10. ^ Аракелян Софья (29.11.2017). «Технологические гиганты используют платформы с открытым исходным кодом, чтобы доминировать в сообществе ИИ» . ВенчурБит . Проверено 18 декабря 2017 г.
  11. ^ «PyTorch укрепляет свое управление, присоединившись к Linux Foundation» . pytorch.org . Проверено 13 сентября 2022 г.
  12. ^ «Фронтенд C++» . Основная документация PyTorch . Проверено 29 июля 2019 г.
  13. ^ Карпаты, Андрей. «PyTorch в Tesla — Андрей Карпати, Tesla» .
  14. ^ «Pyro с открытым исходным кодом Uber AI Labs, язык глубокого вероятностного программирования» . Инженерный блог Uber . 03.11.2017 . Проверено 18 декабря 2017 г.
  15. ^ PYTORCH-ТРАНСФОРМАТОРЫ: реализации PyTorch популярных NLP Transformers , PyTorch Hub, 01 декабря 2019 г. , получено 1 декабря 2019 г.
  16. ^ PYTORCH-Lightning: легкая оболочка PyTorch для исследователей машинного обучения. Масштабируйте свои модели. Пишите меньше шаблонов , Lightning-Team, 18 июня 2020 г. , получено 18 июня 2020 г.
  17. ^ «Инструменты экосистемы» . pytorch.org . Проверено 18 июня 2020 г.
  18. ^ GitHub — Catalyst-team/catalyst: Accelerated DL & RL , Catalyst-Team, 05 декабря 2019 г. , получено 5 декабря 2019 г.
  19. ^ «Инструменты экосистемы» . pytorch.org . Проверено 4 апреля 2020 г.
  20. ^ «PyTorch – О программе» . pytorch.org . Архивировано из оригинала 15 июня 2018 г. Проверено 11 июня 2018 г.
  21. ^ «Caffe2 объединяется с PyTorch» . 2018-04-02.
  22. ^ Эдвардс, Бендж (12 сентября 2022 г.). «Meta выделяет PyTorch Foundation, чтобы сделать инфраструктуру искусственного интеллекта нейтральной в отношении поставщиков» . Арс Техника .
  23. ^ «PyTorch 2.0 привносит новый взгляд в машинное обучение с открытым исходным кодом» . ВенчурБит . 15 марта 2023 г. Проверено 16 марта 2023 г.
  24. ^ «Установка PyTorch для ROCm» . rocm.docs.amd.com . 09.02.2024.
  25. ^ «Представляем ускоренное обучение PyTorch на Mac» . pytorch.org . Проверено 4 июня 2022 г.
  26. ^ «Введение в PyTorch — простая, но мощная библиотека глубокого обучения» . www.analyticsvidhya.com . 22 февраля 2018 г. Проверено 11 июня 2018 г.

Внешние ссылки [ править ]