Освоение развертывания YOLOv5 на Google Cloud Platform (GCP) Deep Learning VM
Вступление на путь искусственного интеллекта (ИИ) и машинного обучения (МО) может быть волнующим, особенно когда вы используете мощь и гибкость платформы облачных вычислений. Google Cloud Platform (GCP) предлагает надежные инструменты, разработанные специально для энтузиастов и профессионалов в области машинного обучения. Одним из таких инструментов является Deep Learning VM, предварительно настроенная для задач науки о данных и машинного обучения. В этом руководстве мы рассмотрим процесс настройки Ultralytics YOLOv5 на GCP Deep Learning VM. Независимо от того, делаете ли вы свои первые шаги в машинном обучении или являетесь опытным специалистом, это руководство предоставит вам четкий путь к внедрению моделей обнаружения объектов на базе YOLOv5.
🆓 Кроме того, если вы новый пользователь GCP, вам повезло с бесплатным кредитом в размере 300 долларов для запуска ваших проектов.
В дополнение к GCP, изучите другие доступные варианты быстрого старта для YOLOv5, такие как наши Google Colab Notebook для работы в браузере или масштабируемость Amazon AWSКроме того, любители контейнеров могут использовать наш официальный Docker-образ, доступный на Docker Hub
для изолированной среды, следуя нашим Краткое руководство по Docker.
Шаг 1: Создайте и настройте свою виртуальную машину для глубокого обучения
Давайте начнем с создания виртуальной машины, оптимизированной для глубокого обучения:
- Перейдите в GCP marketplace и выберите Deep Learning VM.
- Выберите экземпляр n1-standard-8; он предлагает баланс из 8 vCPU и 30 ГБ памяти, что подходит для многих задач машинного обучения.
- Выберите GPU. Выбор зависит от вашей рабочей нагрузки; даже базовая GPU T4 значительно ускорит обучение модели.
- Для простой настройки установите флажок 'Автоматически установить драйвер NVIDIA GPU при первом запуске?'.
- Выделите постоянный диск SSD объемом 300 ГБ, чтобы предотвратить узкие места ввода-вывода.
- Нажмите «Deploy» и разрешите GCP подготовить вашу пользовательскую виртуальную машину Deep Learning.
Эта виртуальная машина поставляется с предварительно загруженными основными инструментами и фреймворками, включая дистрибутив Anaconda Python, который удобно объединяет множество необходимых зависимостей для YOLOv5.
Шаг 2: Подготовьте виртуальную машину для YOLOv5
После настройки окружения давайте установим YOLOv5 и подготовим ее к работе:
# Clone the YOLOv5 repository from GitHub
git clone https://github.com/ultralytics/yolov5
# Navigate into the cloned repository directory
cd yolov5
# Install the required Python packages listed in requirements.txt
pip install -r requirements.txt
Этот процесс установки гарантирует, что у вас есть среда python версии 3.8.0 или новее и PyTorch 1.8 или более поздней версии. Наши скрипты автоматически загружают модели и наборы данных из последнего релиза YOLOv5, упрощая процесс начала обучения модели.
Шаг 3: Обучение и развертывание ваших моделей YOLOv5
После завершения настройки вы готовы к обучению, проверке, прогнозированию и экспорту с помощью YOLOv5 на вашей виртуальной машине GCP:
# Train a YOLOv5 model on your dataset (e.g., yolov5s)
python train.py --data coco128.yaml --weights yolov5s.pt --img 640
# Validate the trained model to check Precision, Recall, and mAP
python val.py --weights yolov5s.pt --data coco128.yaml
# Run inference using the trained model on images or videos
python detect.py --weights yolov5s.pt --source path/to/your/images_or_videos
# Export the trained model to various formats like ONNX, CoreML, TFLite for deployment
python export.py --weights yolov5s.pt --include onnx coreml tflite
Используя всего несколько команд, YOLOv5 позволяет обучать собственные модели обнаружения объектов, адаптированные к вашим конкретным потребностям, или использовать предварительно обученные веса для быстрого получения результатов в различных задачах. Изучите различные варианты развертывания моделей после экспорта.
Выделение пространства подкачки (необязательно)
Если вы работаете с особенно большими наборами данных, которые могут превышать объем оперативной памяти вашей виртуальной машины, рассмотрите возможность добавления файла подкачки, чтобы предотвратить ошибки памяти:
# Allocate a 64GB swap file
sudo fallocate -l 64G /swapfile
# Set the correct permissions for the swap file
sudo chmod 600 /swapfile
# Set up the Linux swap area
sudo mkswap /swapfile
# Enable the swap file
sudo swapon /swapfile
# Verify the swap space allocation (should show increased swap memory)
free -h
Обучение на пользовательских наборах данных
Чтобы обучить YOLOv5 на вашем пользовательском наборе данных в GCP, выполните следующие общие шаги:
- Подготовьте свой набор данных в соответствии с форматом YOLOv5 (изображения и соответствующие файлы меток). См. наш обзор наборов данных для получения рекомендаций.
- Загрузите свой набор данных в GCP VM, используя
gcloud compute scp
или функцию SSH веб-консоли. - Создайте YAML-файл конфигурации набора данных (
custom_dataset.yaml
) который указывает пути к вашим данным для обучения и валидации, количество классов и названия классов. -
Начните процесс обучения, используя свой собственный набор данных YAML и, возможно, начиная с предварительно обученных весов:
# Example: Train YOLOv5s on a custom dataset for 100 epochs python train.py --img 640 --batch 16 --epochs 100 --data custom_dataset.yaml --weights yolov5s.pt
Подробные инструкции по подготовке данных и обучению с использованием пользовательских наборов данных см. в документации Ultralytics YOLOv5 Train.
Использование облачного хранилища
Для эффективного управления данными, особенно с большими наборами данных или многочисленными экспериментами, интегрируйте свой рабочий процесс YOLOv5 с Google Cloud Storage:
# Ensure Google Cloud SDK is installed and initialized
# If not installed: curl https://sdk.cloud.google.com/ | bash
# Then initialize: gcloud init
# Example: Copy your dataset from a GCS bucket to your VM
gsutil cp -r gs://your-data-bucket/my_dataset ./datasets/
# Example: Copy trained model weights from your VM to a GCS bucket
gsutil cp -r ./runs/train/exp/weights gs://your-models-bucket/yolov5_custom_weights/
Этот подход позволяет безопасно и экономично хранить большие наборы данных и обученные модели в облаке, сводя к минимуму требования к хранилищу на вашем экземпляре виртуальной машины.
Заключительные мысли
Поздравляем! Теперь у вас есть все необходимое для использования возможностей Ultralytics YOLOv5 в сочетании с вычислительной мощностью Google Cloud Platform. Эта конфигурация обеспечивает масштабируемость, эффективность и универсальность для ваших проектов по обнаружению объектов. Независимо от того, используете ли вы ее для личного изучения, академических исследований или создания промышленных решений, вы сделали значительный шаг в мир искусственного интеллекта и машинного обучения в облаке.
Рассмотрите возможность использования Ultralytics HUB для упрощенной работы без кода при обучении и управлении вашими моделями.
Не забывайте документировать свой прогресс, делиться идеями с активным сообществом Ultralytics и использовать такие ресурсы, как обсуждения на GitHub, для сотрудничества и поддержки. А теперь вперед, внедряйте инновации с YOLOv5 и GCP!
Хотите и дальше совершенствовать свои навыки машинного обучения? Погрузитесь в нашу документацию и изучите блог Ultralytics, чтобы получить больше учебных пособий и информации. Пусть ваше AI-путешествие продолжается!