Учебник по PyTorch
PyTorch — это библиотека машинного обучения с открытым исходным кодом, используемая для исследований и разработки в таких областях, как компьютерное зрение (CV), обработка естественного языка (NLP) и распознавание речи.
PyTorch был разработан командой исследователей искусственного интеллекта Facebook и широко используется в сообществах машинного обучения и глубокого обучения.
PyTorch известен своей гибкостью и простотой использования, что делает его особенно подходящим для исследований и разработки в области глубокого обучения.
Кому следует читать это руководство?
Если у вас есть базовые знания в программировании, вы можете читать этот учебник. Изучение PyTorch подходит людям, интересующимся глубоким обучением и машинным обучением, включая специалистов по данным, инженеров, исследователей и студентов.
Что нужно знать перед чтением этого учебника:
Прежде чем начать читать это руководство, вы должны обладать базовыми знаниями, включающими программирование на Python, основы математики (линейная алгебра, теория вероятностей, математический анализ), базовые понятия машинного обучения, знание нейронных сетей и определённые навыки чтения на английском языке для работы с документацией и ресурсами.
-
Основы программирования: необходимо знать хотя бы один язык программирования, особенноPython, потому что PyTorch в основном написан на Python.
-
Основы математики: Понимание базовых математических знаний, таких как линейная алгебра, теория вероятностей и статистика, а также математический анализ. Это краеугольные камни для понимания и реализации алгоритмов машинного обучения.
-
Основы машинного обучения: Понимание базовых концепций машинного обучения, таких как обучение с учителем, обучение без учителя, обучение с подкреплением и метрики оценки модели (точность, полнота, F1-мера и т. д.).
-
Основы глубокого обучения: Ознакомьтесь с базовыми концепциями нейронных сетей, включая нейронные сети прямого распространения, свёрточные нейронные сети (CNN), рекуррентные нейронные сети (RNN), сети долгой краткосрочной памяти (LSTM) и т. д.
-
Основы компьютерного зрения и обработки естественного языка: Если вы планируете применять PyTorch в этих областях, наличие соответствующих базовых знаний будет очень полезным.
-
Основы Linux/Unix: Хотя это и не обязательно, понимание основ операционной системы Linux/Unix может помочь вам более эффективно использовать инструменты командной строки и скрипты, особенно при предварительной обработке данных и обучении моделей.
-
Умение читать по-английски: Поскольку многие документы, руководства и обсуждения в сообществе на английском языке, некоторые навыки чтения на английском помогут вам учиться и решать проблемы более эффективно.
Пример
Далее приведены некоторые базовые операции с тензорами в PyTorch: как создавать случайные тензоры, выполнять поэлементные операции, получать доступ к конкретным элементам и вычислять суммы и максимумы.
Пример
# Задать тип данных и устройство
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
Другие расширения