Учебник по PyTorch

PyTorch — это библиотека машинного обучения с открытым исходным кодом, используемая для исследований и разработки в таких областях, как компьютерное зрение (CV), обработка естественного языка (NLP) и распознавание речи.

PyTorch был разработан командой исследователей искусственного интеллекта Facebook и широко используется в сообществах машинного обучения и глубокого обучения.

PyTorch известен своей гибкостью и простотой использования, что делает его особенно подходящим для исследований и разработки в области глубокого обучения.

Кому следует читать это руководство?

Если у вас есть базовые знания в программировании, вы можете читать этот учебник. Изучение PyTorch подходит людям, интересующимся глубоким обучением и машинным обучением, включая специалистов по данным, инженеров, исследователей и студентов.

Что нужно знать перед чтением этого учебника:

Прежде чем начать читать это руководство, вы должны обладать базовыми знаниями, включающими программирование на Python, основы математики (линейная алгебра, теория вероятностей, математический анализ), базовые понятия машинного обучения, знание нейронных сетей и определённые навыки чтения на английском языке для работы с документацией и ресурсами.

  • Основы программирования: необходимо знать хотя бы один язык программирования, особенноPython, потому что PyTorch в основном написан на Python.

  • Основы математики: Понимание базовых математических знаний, таких как линейная алгебра, теория вероятностей и статистика, а также математический анализ. Это краеугольные камни для понимания и реализации алгоритмов машинного обучения.

  • Основы машинного обучения: Понимание базовых концепций машинного обучения, таких как обучение с учителем, обучение без учителя, обучение с подкреплением и метрики оценки модели (точность, полнота, F1-мера и т. д.).

  • Основы глубокого обучения: Ознакомьтесь с базовыми концепциями нейронных сетей, включая нейронные сети прямого распространения, свёрточные нейронные сети (CNN), рекуррентные нейронные сети (RNN), сети долгой краткосрочной памяти (LSTM) и т. д.

  • Основы компьютерного зрения и обработки естественного языка: Если вы планируете применять PyTorch в этих областях, наличие соответствующих базовых знаний будет очень полезным.

  • Основы Linux/Unix: Хотя это и не обязательно, понимание основ операционной системы Linux/Unix может помочь вам более эффективно использовать инструменты командной строки и скрипты, особенно при предварительной обработке данных и обучении моделей.

  • Умение читать по-английски: Поскольку многие документы, руководства и обсуждения в сообществе на английском языке, некоторые навыки чтения на английском помогут вам учиться и решать проблемы более эффективно.

Пример

Далее приведены некоторые базовые операции с тензорами в PyTorch: как создавать случайные тензоры, выполнять поэлементные операции, получать доступ к конкретным элементам и вычислять суммы и максимумы.

Пример

import torch

# Задать тип данных и устройство
dtype = torch.float  # Тип данных тензора — число с плавающей запятой
device = torch.device("cpu")  # Это вычисление выполняется на CPU

# Создать и вывести два случайных тензора a и b
a = torch.randn(2, 3, device=device, dtype=dtype)  # Создать случайный тензор размера 2x3
b = torch.randn(2, 3, device=device, dtype=dtype)  # Создать ещё один случайный тензор размера 2x3

print("Tensor a:")
print(a)

print("Тензор b:")
print(b)

# Перемножить поэлементно и вывести результат
print("Поэлементное произведение a и b:")
print(a * b)

# Вывести сумму всех элементов тензора a
print("Сумма всех элементов тензора a:")
print(a.sum())

# Вывести элемент во 2-й строке, 3-м столбце тензора a (обратите внимание, что индексация начинается с 0)
print("Элемент в строке 2, столбце 3 тензора a:")
print(a[1, 2])

# Вывести максимальное значение в тензоре a
print("Максимальное значение в тензоре a:")
print(a.max())

Создание тензоров:

  • torch.randn(2, 3)Создать тензор с 2 строками и 3 столбцами, заполненный случайными числами (согласно нормальному распределению).
  • device=deviceиdtype=dtypeУкажите вычислительное устройство (CPU или GPU) и тип данных (с плавающей запятой) соответственно.

Тензорные операции:

  • a * b: Поэлементное умножение.
  • a.sum(): Вычислить тензорaсумма всех элементов.
  • a[1, 2]: Доступ к тензоруaэлемент в строке 2, столбце 3 (обратите внимание, что индексация начинается с 0).
  • a.max(): Получить тензорaмаксимальное значение в.

Вывод: (значения будут различаться при каждом запуске)

张量 a:
tensor([[-0.1460, -0.3490,  0.3705],
        [-1.1141,  0.7661,  1.0823]])

张量 b:
tensor([[ 0.6901, -0.9663,  0.3634],
        [-0.6538, -0.3728, -1.1323]])

a 和 b 的逐元素乘积:
tensor([[-0.1007,  0.3372,  0.1346],
        [ 0.7284, -0.2856, -1.2256]])

张量 a 所有元素的总和:
tensor(0.6097)

张量 a 第 2 行第 3 列的元素:
tensor(1.0823)

张量 a 中的最大值:
tensor(1.0823)

Ссылки

Официальный сайт PyTorch:https://pytorch.org/

Официальное руководство по началу работы с PyTorch:https://pytorch.org/get-started/locally/

Официальная документация PyTorch:https://pytorch.org/docs/stable/index.html

Исходный код PyTorch:https://github.com/pytorch/pytorch

Другие расширения