PyTorch
Оригинальный автор(ы) |
|
---|---|
Разработчик(и) | Мета ИИ |
Первоначальный выпуск | сентябрь 2016 г [1] |
Стабильная версия | 2.4.0 [2]
/ 24 июля 2024 г |
Репозиторий | 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()
функция.
Пример
[ редактировать ]Следующая программа демонстрирует низкоуровневую функциональность библиотеки на простом примере.
import torch
dtype = torch.float
device = torch.device("cpu") # Execute all calculations on the CPU
# device = torch.device("cuda:0") # Executes all calculations on the GPU
# Create a tensor and fill it with random numbers
a = torch.randn(2, 3, device=device, dtype=dtype)
print(a)
# Output: tensor([[-1.1884, 0.8498, -1.7129],
# [-0.8816, 0.1944, 0.5847]])
b = torch.randn(2, 3, device=device, dtype=dtype)
print(b)
# Output: tensor([[ 0.7178, -0.8453, -1.3403],
# [ 1.3262, 1.1512, -1.7070]])
print(a * b)
# Output: tensor([[-0.8530, -0.7183, 2.58],
# [-1.1692, 0.2238, -0.9981]])
print(a.sum())
# Output: tensor(-2.1540)
print(a[1,2]) # Output of the element in the third column of the second row (zero based)
# Output: tensor(0.5847)
print(a.max())
# Output: tensor(0.8498)
В следующем блоке кода показан пример предоставляемой функциональности более высокого уровня. nn
модуль. В примере определена нейронная сеть с линейными слоями.
import torch
from torch import nn # Import the nn sub-module from PyTorch
class NeuralNetwork(nn.Module): # Neural networks are defined as classes
def __init__(self): # Layers and variables are defined in the __init__ method
super().__init__() # Must be in every network.
self.flatten = nn.Flatten() # Construct a flattening layer.
self.linear_relu_stack = nn.Sequential( # Construct a stack of layers.
nn.Linear(28*28, 512), # Linear Layers have an input and output shape
nn.ReLU(), # ReLU is one of many activation functions provided by nn
nn.Linear(512, 512),
nn.ReLU(),
nn.Linear(512, 10),
)
def forward(self, x): # This function defines the forward pass.
x = self.flatten(x)
logits = self.linear_relu_stack(x)
return logits
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Чинтала, Сумит (1 сентября 2016 г.). «Выпуск PyTorch Alpha-1» .
- ^ «Выпуск 2.4.0» . 24 июля 2024 г. Проверено 26 июля 2024 г.
- ^ Клэберн, Томас (12 сентября 2022 г.). «PyTorch получает поддержку от The Linux Foundation» . Регистр .
- ^ Егулалп, Сердар (19 января 2017 г.). «Facebook переносит машинное обучение на базе графического процессора в Python» . Инфомир . Проверено 11 декабря 2017 г.
- ^ Лорика, Бен (3 августа 2017 г.). «Почему исследователи искусственного интеллекта и машинного обучения начинают использовать PyTorch» . О'Рейли Медиа . Проверено 11 декабря 2017 г.
- ^ Кеткар, Нихил (2017). «Введение в PyTorch». Глубокое обучение с помощью Python . Апресс, Беркли, Калифорния. стр. 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