Лучшие вопросы
Таймлайн
Чат
Перспективы
PyTorch
библиотека машинного обучения для языка Python с открытым исходным кодом, созданная на базе Torch Из Википедии, свободной энциклопедии
Remove ads
PyTorch — фреймворк машинного обучения для языка Python с открытым исходным кодом, созданный на базе Torch[2][3][4]. Используется для решения различных задач: компьютерное зрение, обработка естественного языка.[5] Разрабатывается преимущественно группой искусственного интеллекта Facebook[6][7][8]. Также вокруг этого фреймворка выстроена экосистема[9], состоящая из различных библиотек, разрабатываемых сторонними командами: PyTorch Lightning и Fast.ai[10], упрощающие процесс обучения моделей, Pyro (модуль для вероятностного программирования[англ.]) от Uber[11], Flair[12] для обработки естественного языка и Catalyst[13] для обучения DL- и RL-моделей.
PyTorch предоставляет две основные высокоуровневые модели:[14]
Remove ads
Тензоры PyTorch
Тензоры не представляют собой чего-либо особенного, просто являясь многомерными массивами. Тензоры PyTorch (Tensors) похожи на массивы пакета NumPy, но дополнительно могут обрабатываться на видеоускорителях. PyTorch поддерживает различные типы тензоров.[15]
Модули
Модуль Autograd
PyTorch использует метод автоматической дифференциации. Производится запись вычислений, произведенных в прямом направлении, затем производится воспроизведение в обратном порядке для вычисления градиентов (backpropagation). Этот метод особенно полезен при построении нейронных сетей, так как позволяет рассчитывать дифференциальные поправки параметров одновременно с прямым проходом.
Модуль Optim
torch.optim
— модуль, реализующий несколько алгоритмов оптимизации, используемых при построении нейронных сетей. Реализовано большинство наиболее часто используемых методов.
Модуль nn
Модуль PyTorch autograd
позволяет легко определять вычислительные графы и работать с градиентами, однако может быть слишком низкоуровневой для определения сложных нейронных сетей. Более высокоуровневой абстракцией для таких применений является модуль nn
.
Remove ads
Пример
Следующий код демонстрирует функциональность библиотеки на простом примере:[16][17]
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