Interested Article - PyTorch

PyTorch — фреймворк машинного обучения для языка Python с открытым исходным кодом, созданный на базе Torch . Используется для решения различных задач: компьютерное зрение , обработка естественного языка . Разрабатывается преимущественно группой искусственного интеллекта Facebook . Также вокруг этого фреймворка выстроена экосистема , состоящая из различных библиотек, разрабатываемых сторонними командами: и Fast.ai , упрощающие процесс обучения моделей, , модуль для , от Uber , Flair , для обработки естественного языка и Catalyst , для обучения DL и RL моделей.

PyTorch предоставляет две основные высокоуровневые модели:

  • Тензорные вычисления (по аналогии с NumPy ) с развитой поддержкой ускорения на GPU
  • Глубокие нейронные сети на базе системы autodiff

Тензоры PyTorch

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

Модули

Модуль Autograd

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

Модуль Optim

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

Модуль nn

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

Пример

Следующий код демонстрирует функциональность библиотеки на простом примере:

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)

См. также

Примечания

  1. — 2023.
  2. Yegulalp, Serdar (2017-01-19). . InfoWorld . из оригинала 12 июля 2018 . Дата обращения: 11 декабря 2017 .
  3. Lorica, Ben . O'Reilly Media (3 августа 2017). Дата обращения: 11 декабря 2017. 17 мая 2019 года.
  4. Ketkar, Nikhil. (англ.) . — Apress, Berkeley, CA, 2017. — P. 195—208. — ISBN 9781484227657 . — doi : . 12 июля 2018 года.
  5. (англ.) . dl4nlp.info . Дата обращения: 18 декабря 2017. 21 июня 2019 года.
  6. Patel, Mo (2017-12-07). . O'Reilly Media (англ.) . из оригинала 30 марта 2019 . Дата обращения: 18 декабря 2017 . {{ cite news }} : Указан более чем один параметр |accessdate= and |access-date= ( справка )
  7. Mannes, John. . TechCrunch (англ.) . из оригинала 6 июля 2020 . Дата обращения: 18 декабря 2017 . 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. {{ cite news }} : Указан более чем один параметр |accessdate= and |access-date= ( справка )
  8. Arakelyan, Sophia (англ.) . VentureBeat (29 ноября 2017). Дата обращения: 18 декабря 2017. 30 марта 2019 года.
  9. (англ.) . pytorch.org. Дата обращения: 16 июня 2019. Архивировано из 31 августа 2019 года.
  10. . www.fast.ai. Дата обращения: 16 июня 2019. 16 июня 2019 года.
  11. . Uber Engineering Blog (англ.) . 2017-11-03. из оригинала 25 декабря 2017 . Дата обращения: 18 декабря 2017 . {{ cite news }} : Указан более чем один параметр |accessdate= and |access-date= ( справка )
  12. . — 2019-06-16. 18 июня 2019 года.
  13. . — 2019-11-25. 22 декабря 2019 года.
  14. . pytorch.org . Дата обращения: 11 июня 2018. Архивировано из 15 июня 2018 года.
  15. . analyticsvidhya.com . Дата обращения: 11 июня 2018. 22 октября 2019 года.
  16. Jeremy Howard, Sylvain Gugger. . — O'Reilly, 2020. — ISBN 978-1492045526 . . Дата обращения: 8 октября 2021. Архивировано 8 октября 2021 года.
  17. (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
Источник —

Same as PyTorch