PyTorch

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

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

На основе PyTorch создано множество программ глубокого обучения , в том числе Tesla Autopilot , [15] Uber 's Pyro, [16] Hugging Face 's Transformers, [17] PyTorch Lightning , [18] [19] и Catalyst. [20] [21]

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

История

Meta (ранее известная как Facebook) управляет как PyTorch, так и Convolutional Architecture for Fast Feature Embedding ( Caffe2 ), но модели, определенные этими двумя фреймворками, были взаимно несовместимы. Проект Open Neural Network Exchange ( ONNX ) был создан Meta и Microsoft в сентябре 2017 года для преобразования моделей между фреймворками. Caffe2 была объединена с PyTorch в конце марта 2018 года. [23] В сентябре 2022 года Meta объявила, что PyTorch будет управляться независимым PyTorch Foundation, недавно созданным дочерним предприятием Linux Foundation . [24]

PyTorch 2.0 был выпущен 15 марта 2023 года, представляя TorchDynamo, компилятор уровня Python , который ускоряет выполнение кода до 2 раз, а также значительно улучшает производительность обучения и вывода на основных облачных платформах . [25] [26]

Тензоры PyTorch

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

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

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

Нейронные сети PyTorch

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

Пример

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

импортный  факелdtype  =  torch . floatdevice  =  torch . device ( "cpu" )  # Выполнить все вычисления на CPU# device = torch.device("cuda:0") # Выполняет все вычисления на GPU# Создаем тензор и заполняем его случайными числамиa  =  torch.randn ( 2,3 , device = устройство , dtype = dtype )   печать ( а )# Вывод: тензор([[-1.1884, 0.8498, -1.7129],# [-0,8816, 0,1944, 0,5847]])b  =  torch.randn ( 2,3 , device = устройство , dtype = dtype )   печать ( б )# Вывод: тензор([[ 0.7178, -0.8453, -1.3403],# [ 1.3262, 1.1512, -1.7070]])распечатать ( а  *  б )# Вывод: тензор([[-0.8530, -0.7183, 2.58],# [-1.1692, 0.2238, -0.9981]])распечатать ( а . сумма ()) # Вывод: тензор(-2.1540)print ( a [ 1 , 2 ])  # Вывод элемента в третьем столбце второй строки (начиная с нуля)# Выход: тензор(0.5847)печать ( а . макс ())# Выход: тензор(0.8498)

Следующий блок кода определяет нейронную сеть с линейными слоями, использующую nnмодуль.

импортный  факелfrom  torch  import  nn  # Импортировать подмодуль nn из PyTorchclass  NeuralNetwork ( nn . Module ):  # Нейронные сети определяются как классы def  __init__ ( self ):  # Слои и переменные определяются в методе __init__ super () . __init__ ()  # Должен быть в каждой сети. self.flatten = nn.Flatten ( ) # Построить выравнивающий слой .    self.linear_relu_stack = nn.Sequential ( # Построить стек слоев .    nn . Линейный ( 28 * 28 ,  512 ),  # Линейные слои имеют входную и выходную форму nn . ReLU (),  # ReLU — одна из многих функций активации, предоставляемых nn nn . Линейный ( 512 ,  512 ), nn . ReLU (), nn . Линейный ( 512 ,  10 ),  ) def  forward ( self ,  x ):  # Эта функция определяет прямой проход. x  =  само . сглаживание ( x ) logits  =  self.linear_relu_stack ( x ) возврат  логитов

Смотрите также

Ссылки

  1. Чинтала, Сумит (1 сентября 2016 г.). «Выпуск PyTorch Alpha-1». Гитхаб .
  2. ^ "Release 2.5.1". 29 октября 2024 г. Получено 26 ноября 2024 г.
  3. ^ Клэберн, Томас (12 сентября 2022 г.). «PyTorch зажигается под покровительством Linux Foundation». The Register .
  4. ^ Йегулалп, Сердар (19 января 2017 г.). «Facebook привносит машинное обучение на базе GPU в Python». InfoWorld . Получено 11 декабря 2017 г.
  5. ^ Лорика, Бен (3 августа 2017 г.). «Почему исследователи искусственного интеллекта и машинного обучения начинают использовать PyTorch». O'Reilly Media . Получено 11 декабря 2017 г.
  6. ^ Кеткар, Нихил (2017). «Введение в PyTorch». Глубокое обучение с Python . Apress, Беркли, Калифорния. С.  195–208 . doi :10.1007/978-1-4842-2766-4_12. ISBN 9781484227657.
  7. ^ Moez Ali (июнь 2023 г.). «НЛП с PyTorch: всеобъемлющее руководство». datacamp.com . Получено 01.04.2024 .
  8. ^ Патель, Мо (2017-12-07). «Когда две тенденции сливаются: PyTorch и рекомендательные системы». O'Reilly Media . Получено 2017-12-18 .
  9. ^ Mannes, John. "Facebook и Microsoft сотрудничают для упрощения преобразований из PyTorch в Caffe2". TechCrunch . Получено 18.12.2017 . FAIR привыкла работать с PyTorch — фреймворком глубокого обучения, оптимизированным для достижения современных результатов в исследованиях, независимо от ограничений ресурсов. К сожалению, в реальном мире большинство из нас ограничены вычислительными возможностями наших смартфонов и компьютеров.
  10. ^ Аракелян, София (29.11.2017). «Технологические гиганты используют фреймворки с открытым исходным кодом, чтобы доминировать в сообществе ИИ». VentureBeat . Получено 18.12.2017 .
  11. ^ "PyTorch укрепляет свое управление, присоединяясь к Linux Foundation". pytorch.org . Получено 13 сентября 2022 г.
  12. ^ "30 лучших проектов с открытым исходным кодом". Скорость проектов с открытым исходным кодом от CNCF . Получено 12 октября 2023 г.
  13. ^ "Добро пожаловать в PaddlePaddle GitHub". Официальный репозиторий PaddlePaddle Github . Получено 28.10.2024 .
  14. ^ "The C++ Frontend". PyTorch Master Documentation . Получено 29.07.2019 .
  15. Карпаты, Андрей (6 ноября 2019 г.). «PyTorch в Tesla - Андрей Карпаты, Tesla». Ютуб .
  16. ^ "Uber AI Labs открывает исходники Pyro, глубоко вероятностный язык программирования". Блог инженеров Uber . 2017-11-03 . Получено 2017-12-18 .
  17. ^ PYTORCH-TRANSFORMERS: Реализации популярных NLP-трансформеров на PyTorch, PyTorch Hub, 2019-12-01 , получено 2019-12-01
  18. ^ PYTORCH-Lightning: Легкая оболочка PyTorch для исследователей машинного обучения. Масштабируйте свои модели. Пишите меньше шаблонов, Lightning-Team, 2020-06-18 , получено 2020-06-18
  19. ^ "Инструменты экосистемы". pytorch.org . Получено 2020-06-18 .
  20. ^ GitHub - catalyst-team/catalyst: Ускоренное DL и RL, Catalyst-Team, 2019-12-05 , получено 2019-12-05
  21. ^ "Инструменты экосистемы". pytorch.org . Получено 2020-04-04 .
  22. ^ "PyTorch – About". pytorch.org . Архивировано из оригинала 2018-06-15 . Получено 2018-06-11 .
  23. ^ «Caffe2 объединяется с PyTorch». 2018-04-02.
  24. ^ Эдвардс, Бендж (12.09.2022). «Meta выделяется из PyTorch Foundation, чтобы сделать фреймворк ИИ нейтральным по отношению к поставщикам». Ars Technica .
  25. ^ «Обзор Динамо».
  26. ^ "PyTorch 2.0 привносит новый импульс в машинное обучение с открытым исходным кодом". VentureBeat . 15 марта 2023 г. Получено 16 марта 2023 г.
  27. ^ "Установка PyTorch для ROCm". rocm.docs.amd.com . 2024-02-09.
  28. ^ "Представляем ускоренное обучение PyTorch на Mac". pytorch.org . Получено 04.06.2022 .
  29. ^ «Введение в PyTorch – Простая, но мощная библиотека глубокого обучения». analyticsvidhya.com . 2018-02-22 . Получено 2018-06-11 .
  • Официальный сайт
Retrieved from "https://en.wikipedia.org/w/index.php?title=PyTorch&oldid=1259992896"