Лучшие вопросы
Таймлайн
Чат
Перспективы
PyTorch
библиотека машинного обучения для языка Python с открытым исходным кодом, созданная на базе Torch Из Википедии, свободной энциклопедии
Remove ads
PyTorch — фреймворк машинного обучения для языка Python с открытым исходным кодом, созданный на базе Torch[3][4][5]. Используется для решения различных задач: компьютерное зрение, обработка естественного языка.[6] Разрабатывается преимущественно группой искусственного интеллекта Facebook[7][8][9]. Также вокруг этого фреймворка выстроена экосистема[10], состоящая из различных библиотек, разрабатываемых сторонними командами: PyTorch Lightning и Fast.ai[11], упрощающие процесс обучения моделей, Pyro (модуль для вероятностного программирования[англ.]) от Uber[12], Flair[13] для обработки естественного языка и Catalyst[14] для обучения DL- и RL-моделей.
PyTorch предоставляет две основные высокоуровневые модели:[15]
Remove ads
Тензоры PyTorch
Тензоры не представляют собой чего-либо особенного, просто являясь многомерными массивами. Тензоры PyTorch (Tensors) похожи на массивы пакета NumPy, но дополнительно могут обрабатываться на видеоускорителях. PyTorch поддерживает различные типы тензоров.[16]
Модули
Модуль Autograd
PyTorch использует метод автоматической дифференциации. Производится запись вычислений, произведенных в прямом направлении, затем производится воспроизведение в обратном порядке для вычисления градиентов (backpropagation). Этот метод особенно полезен при построении нейронных сетей, так как позволяет рассчитывать дифференциальные поправки параметров одновременно с прямым проходом.
Модуль Optim
torch.optim — модуль, реализующий несколько алгоритмов оптимизации, используемых при построении нейронных сетей. Реализовано большинство наиболее часто используемых методов.
Модуль nn
Модуль PyTorch autograd позволяет легко определять вычислительные графы и работать с градиентами, однако может быть слишком низкоуровневой для определения сложных нейронных сетей. Более высокоуровневой абстракцией для таких применений является модуль nn.
Remove ads
Пример
Следующий код демонстрирует функциональность библиотеки на простом примере:[17][18]
import torch
dtype = torch.float
device = torch.device("cpu") # Выполнение всех вычислений на центральном процессоре
# device = torch.device("cuda:0") # Выполнение всех вычислений на графическом процессоре
# Создание тензора и заполнение тензора случайными числами
a = torch.randn(2, 3, device=device, dtype=dtype)
print(a) # Вывод тензора A
# Вывод: tensor([[-1.1884,  0.8498, -1.7129],
#                  [-0.8816,  0.1944,  0.5847]])
# Создание тензора и заполнение тензора случайными числами
b = torch.randn(2, 3, device=device, dtype=dtype)
print(b) # Вывод тензора 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()) # Вывод суммы всех элементов тензора A
# Вывод: tensor(-2.1540)
print(a[1,2]) # Вывод элемента в третьем столбце второй строки
# Вывод: tensor(0.5847)
print(a.min()) # Вывод минимального значения в тензоре A
# Вывод: tensor(-1.7129)
См. также
Примечания
Литература
Ссылки
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads