Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

PyTorch

PyTorch — это фреймворк Python с открытым исходным кодом для создания и обучения нейронных сетей с тензорами GPU и автоматическим дифференцированием. Основные концепции и путь к развёртыванию.

PyTorch — это фреймворк с открытым исходным кодом для создания, обучения и развёртывания нейронных сетей на Python. Он предоставляет тензоры с ускорением на GPU, автоматическое дифференцирование и библиотеку слоёв, оптимизаторов и функций потерь. Код выполняется в eager-режиме, построчно, поэтому модели можно писать и отлаживать, как обычные программы Python. PyTorch создана исследовательской лабораторией Facebook AI Research, ныне Meta AI; с 2022 года проект курирует независимый от вендоров фонд PyTorch Foundation при Linux Foundation. PyTorch широко используют для исследований в области глубокого обучения и создания производственных моделей в сфере компьютерного зрения и обработки языка.

Основные понятия#

  • Тензоры: многомерные массивы, похожие на массивы NumPy, которые могут храниться в памяти CPU или ускорителя. PyTorch поддерживает GPU NVIDIA через CUDA, GPU AMD через ROCm и чипы Apple через Metal (MPS); для переноса данных между ними достаточно одного вызова .to(device).
  • Autograd: во время выполнения операций с тензорами PyTorch записывает их в граф вычислений. Вызов .backward() проходит по графу в обратном порядке и вычисляет градиент выходного значения по каждому тензору, для которого он требуется. Это этап обратного распространения ошибки при обучении.
  • Eager-выполнение: граф пересоздаётся при каждом прямом проходе, поэтому в моделях можно использовать циклы, условные операторы и инструкции print на Python, а ошибки указывают на конкретную строку, в которой они возникли.
  • Модули и оптимизаторы: torch.nn предоставляет такие слои, как свёртки, механизмы внимания и нормализация, а torch.optim — такие оптимизаторы, как SGD и Adam, которые обновляют веса на основе вычисленных градиентов.
  • torch.compile: функция появилась в PyTorch 2.0. Она преобразует программу, выполняемую в eager-режиме, в граф и генерирует объединённые ядра, часто ускоряя обучение и инференс без изменения кода модели.

Пример ниже выполняет небольшое вычисление на GPU, если он доступен, и позволяет autograd вычислить градиент:

import torch

# Use a GPU when PyTorch can see one, otherwise fall back to the CPU
device = "cuda" if torch.cuda.is_available() else "cpu"

# Tensors record the operations applied to them when requires_grad=True
w = torch.tensor([2.0, -1.0], device=device, requires_grad=True)
x = torch.tensor([3.0, 4.0], device=device)

# Ordinary Python runs eagerly: each line executes immediately
loss = (w * x).sum() ** 2

# Autograd walks the recorded graph backward to get d(loss)/dw
loss.backward()
print(f"device={device}, loss={loss.item()}, grad={w.grad.tolist()}")

На компьютере без GPU программа выводит device=cpu, loss=4.0, grad=[12.0, 16.0]. Значение функции потерь равно (2·3 − 1·4)² = 4, а autograd вычисляет её производную 2·(w·x)·x = [12, 16] без ручных вычислений. Этот же механизм используется для обучения сетей с миллиардами весов.

PyTorch и другие инструменты#

  • TensorFlow: фреймворк Google, в котором до выхода TensorFlow 2 сначала строили статические графы, а затем выполняли их. Начиная с TensorFlow 2 режим eager-выполнения включён по умолчанию. TensorFlow по-прежнему широко используется в производственных системах на базе Keras и инструментов развёртывания Google.
  • JAX: числовая библиотека Google, которая преобразует чистые функции Python с помощью комбинируемых операций grad, jit и vmap, компилируемых через XLA. JAX популярен в масштабных исследованиях на TPU.
  • OpenCV: библиотека компьютерного зрения для чтения, преобразования и анализа изображений с помощью классических алгоритмов. В конвейерах OpenCV часто загружает и предварительно обрабатывает кадры перед передачей их модели PyTorch.
  • Hugging Face: платформа и набор библиотек, в основном построенных на PyTorch. Библиотека Transformers предоставляет предварительно обученные языковые и визуальные модели в виде модулей PyTorch.

От исследований к развёртыванию#

Обученную модель PyTorch сохраняют в контрольную точку, обычно в файл .pt или .pth, содержащий её веса. Модель можно запустить как есть в сервисе Python, но для периферийных устройств и оптимизированных серверов её обычно нужно преобразовать в среду выполнения, предназначенную для их оборудования:

Ultralytics YOLO26 написана на PyTorch: yolo26n.pt — это контрольная точка PyTorch, обучение выполняется с помощью autograd и оптимизаторов PyTorch, а model.export() преобразует модель в следующие форматы развёртывания: ONNX, TensorRT, OpenVINO, Core ML и LiteRT.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

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

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения