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