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