Меню

Главная
Случайная статья
Настройки
PyTorch
Материал из https://ru.wikipedia.org

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]
  • Тензорные вычисления (по аналогии с NumPy) с развитой поддержкой ускорения на GPU;
  • Глубокие нейронные сети на базе системы autodiff.


Содержание

Тензоры PyTorch

Тензоры не представляют собой чего-либо особенного, просто являясь многомерными массивами. Тензоры PyTorch (Tensors) похожи на массивы пакета NumPy, но дополнительно могут обрабатываться на видеоускорителях. PyTorch поддерживает различные типы тензоров.[15]

Модули

Модуль Autograd

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

Модуль Optim

torch.optim — модуль, реализующий несколько алгоритмов оптимизации, используемых при построении нейронных сетей. Реализовано большинство наиболее часто используемых методов.

Модуль nn

Модуль PyTorch autograd позволяет легко определять вычислительные графы и работать с градиентами, однако может быть слишком низкоуровневой для определения сложных нейронных сетей. Более высокоуровневой абстракцией для таких применений является модуль nn.

Пример

Следующий код демонстрирует функциональность библиотеки на простом примере:[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)


См. также

Примечания
  1. Release 2.8.0 — 2025.
  2. Yegulalp, Serdar (19 января 2017). Facebook brings GPU-powered machine learning to Python. InfoWorld. Архивировано 12 июля 2018. Дата обращения: 11 декабря 2017.
  3. Lorica, Ben. Why AI and machine learning researchers are beginning to embrace PyTorch. O'Reilly Media (3 августа 2017). Дата обращения: 11 декабря 2017. Архивировано 17 мая 2019 года.
  4. Natural Language Processing (NLP) with PyTorch — NLP with PyTorch documentation (англ.). dl4nlp.info. Дата обращения: 18 декабря 2017. Архивировано 21 июня 2019 года.
  5. Arakelyan, Sophia. Tech giants are using open source frameworks to dominate the AI community (англ.). VentureBeat (29 ноября 2017). Дата обращения: 18 декабря 2017. Архивировано 30 марта 2019 года.
  6. PyTorch (англ.). pytorch.org. Дата обращения: 16 июня 2019. Архивировано из оригинала 31 августа 2019 года.
  7. fast.ai · Making neural nets uncool again. www.fast.ai. Дата обращения: 16 июня 2019. Архивировано 16 июня 2019 года.
  8. A very simple framework for state-of-the-art Natural Language Processing (NLP): zalandoresearch/flair. — 2019-06-16. Архивировано 18 июня 2019 года.
  9. Reproducible and fast DL & RL. Contribute to catalyst-team/catalyst development by creating an account on GitHub. — 2019-11-25. Архивировано 22 декабря 2019 года.
  10. PyTorch – About. pytorch.org. Дата обращения: 11 июня 2018. Архивировано из оригинала 15 июня 2018 года.
  11. An Introduction to PyTorch – A Simple yet Powerful Deep Learning Library. analyticsvidhya.com. Дата обращения: 11 июня 2018. Архивировано 22 октября 2019 года.
  12. Jeremy Howard, Sylvain Gugger. Deep Learning for Coders with fastai and PyTorch. — O'Reilly, 2020. — ISBN 978-1492045526. Архивная копия от 8 октября 2021 на Wayback Machine Источник. Дата обращения: 8 октября 2021. Архивировано 8 октября 2021 года.
  13. Caffe2 Merges With PyTorch (2 апреля 2018). Дата обращения: 8 октября 2021. Архивировано 30 марта 2019 года.


Литература


Ссылки
Downgrade Counter