PyTorch
PyTorch — фреймворк машинного обучения для языка Python с открытым исходным кодом, созданный на базе Torch[2][3][4]. Используется для решения различных задач: компьютерное зрение, обработка естественного языка.[5] Разрабатывается преимущественно группой искусственного интеллекта Facebook[6][7][8]. Также вокруг этого фреймворка выстроена экосистема[9], состоящая из различных библиотек, разрабатываемых сторонними командами: PyTorch Lightning и Fast.ai[10], упрощающие процесс обучения моделей, Pyro, модуль для вероятностного программирования[en], от Uber[11], Flair[12], для обработки естественного языка и Catalyst[13], для обучения DL и RL моделей.
PyTorch | |
---|---|
Тип | Библиотека машинного и глубокого обучения |
Автор | Adam Paszke, Sam Gross, Soumith Chintala, Gregory Chanan |
Написана на | Python, C++, CUDA |
Операционная система | Linux, macOS, Windows |
Первый выпуск | октябрь 2016 |
Последняя версия |
|
Лицензия | BSD |
Сайт | pytorch.org (англ.) |
Медиафайлы на Викискладе |
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") # This executes all calculations on the CPU
# device = torch.device("cuda:0") # This executes all calculations on the GPU
# Creation of a tensor and filling of a tensor with random numbers
a = torch.randn(2, 3, device=device, dtype=dtype)
print(a) # Output of tensor A
# Output: tensor([[-1.1884, 0.8498, -1.7129],
# [-0.8816, 0.1944, 0.5847]])
# Creation of a tensor and filling of a tensor with random numbers
b = torch.randn(2, 3, device=device, dtype=dtype)
print(b) # Output of tensor B
# Output: tensor([[ 0.7178, -0.8453, -1.3403],
# [ 1.3262, 1.1512, -1.7070]])
print(a*b) # Output of a multiplication of the two tensors
# Output: tensor([[-0.8530, -0.7183, 2.58],
# [-1.1692, 0.2238, -0.9981]])
print(a.sum()) # Output of the sum of all elements in tensor A
# Output: tensor(-2.1540)
print(a[1,2]) # Output of the element in the third column of the second row
# Output: tensor(0.5847)
print(a.min()) # Output of the minimum value in tensor A
# Output: tensor(-1.7129)
См. такжеПравить
ПримечанияПравить
- ↑ Release 1.13.1 — 2022.
- ↑ Yegulalp, Serdar. Facebook brings GPU-powered machine learning to Python, InfoWorld (19 января 2017). Архивировано 12 июля 2018 года. Дата обращения: 11 декабря 2017.
- ↑ Lorica, Ben Why AI and machine learning researchers are beginning to embrace PyTorch (неопр.). O'Reilly Media (3 августа 2017). Дата обращения: 11 декабря 2017. Архивировано 17 мая 2019 года.
- ↑ Ketkar, Nikhil. Deep Learning with Python (англ.). — Apress, Berkeley, CA, 2017. — P. 195—208. — ISBN 9781484227657. — doi:10.1007/978-1-4842-2766-4_12.
- ↑ Natural Language Processing (NLP) with PyTorch — NLP with PyTorch documentation (англ.). dl4nlp.info. Дата обращения: 18 декабря 2017. Архивировано 21 июня 2019 года.
- ↑ Patel, Mo. When two trends fuse: PyTorch and recommender systems (англ.), O'Reilly Media (7 December 2017). Архивировано 30 марта 2019 года. Дата обращения: 30 сентября 2018.
- ↑ Mannes, John. Facebook and Microsoft collaborate to simplify conversions from PyTorch to Caffe2 (англ.), TechCrunch. Архивировано 6 июля 2020 года. Дата обращения: 30 сентября 2018. «FAIR is accustomed to working with PyTorch — a deep learning framework optimized for achieving state of the art results in research, regardless of resource constraints. Unfortunately in the real world, most of us are limited by the computational capabilities of our smartphones and computers.».
- ↑ Arakelyan, Sophia Tech giants are using open source frameworks to dominate the AI community (англ.). VentureBeat (29 ноября 2017). Дата обращения: 18 декабря 2017. Архивировано 30 марта 2019 года.
- ↑ PyTorch (англ.). pytorch.org. Дата обращения: 16 июня 2019. Архивировано из оригинала 31 августа 2019 года.
- ↑ fast.ai · Making neural nets uncool again (неопр.). www.fast.ai. Дата обращения: 16 июня 2019. Архивировано 16 июня 2019 года.
- ↑ Uber AI Labs Open Sources Pyro, a Deep Probabilistic Programming Language (англ.), Uber Engineering Blog (3 November 2017). Архивировано 25 декабря 2017 года. Дата обращения: 30 сентября 2018.
- ↑ A very simple framework for state-of-the-art Natural Language Processing (NLP): zalandoresearch/flair. — 2019-06-16. Архивировано 18 июня 2019 года.
- ↑ Reproducible and fast DL & RL. Contribute to catalyst-team/catalyst development by creating an account on GitHub. — 2019-11-25. Архивировано 22 декабря 2019 года.
- ↑ PyTorch – About (неопр.). pytorch.org. Дата обращения: 11 июня 2018. Архивировано из оригинала 15 июня 2018 года.
- ↑ An Introduction to PyTorch – A Simple yet Powerful Deep Learning Library (неопр.). analyticsvidhya.com. Дата обращения: 11 июня 2018. Архивировано 22 октября 2019 года.
- ↑ Jeremy Howard, Sylvain Gugger. Deep Learning for Coders with fastai and PyTorch. — O'Reilly, 2020. — ISBN 978-1492045526. Архивная копия от 8 октября 2021 на Wayback Machine
- ↑ Caffe2 Merges With PyTorch (неопр.) (2 апреля 2018). Дата обращения: 8 октября 2021. Архивировано 30 марта 2019 года.
ЛитератураПравить
- Макмахан Б., Рао Д. Знакомство с PyTorch: глубокое обучение при обработке естественного языка = Natural Language Processing with PyTorch. Build Intelligent Language Applications Using Deep Learning. — Питер, 2020. — 256 с. — ISBN 978-5-4461-1241-8.
СсылкиПравить
- pytorch.org — официальный сайт PyTorch
- https://habr.com/post/334380/
- https://habr.com/company/otus/blog/358096/