跳转至内容

开始在 Docker 中使用 YOLOv5 🚀

欢迎来到 Ultralytics YOLOv5 Docker 快速入门指南!本教程提供了在 Docker 容器中设置和运行 YOLOv5 的分步说明。使用 Docker 使您能够在隔离、一致的环境中运行 YOLOv5,从而简化了跨不同系统的部署和依赖管理。这种方法利用容器化将应用程序及其依赖项打包在一起。

对于其他的设置方法,请参考我们的 Colab Notebook 在 Colab 中打开 在 Kaggle 中打开, GCP 深度学习 VMAmazon AWS 指南。有关 Ultralytics 模型 Docker 使用的总体概述,请参阅 Ultralytics Docker 快速入门指南.

准备工作

在开始之前,请确保您已安装以下组件:

  1. Docker:从 Docker 官方网站下载并安装 Docker。Docker 对于创建和管理容器至关重要。
  2. NVIDIA 驱动程序GPU 支持必需):确保您已安装 NVIDIA 驱动程序 455.23 或更高版本。您可以从 NVIDIA 网站下载最新的驱动程序。
  3. NVIDIA Container Toolkit(GPU 支持必需):此工具包允许 Docker 容器访问您主机上的 NVIDIA GPU。有关详细说明,请按照官方 NVIDIA Container Toolkit 安装指南 进行操作。

设置 NVIDIA Container Toolkit (GPU 用户)

首先,通过运行以下命令验证您的 NVIDIA 驱动程序是否已正确安装:

nvidia-smi

此命令应显示有关您的 GPU 以及已安装的驱动程序版本的信息。

接下来,安装 NVIDIA Container Toolkit。以下命令是基于 Debian 的系统(如 Ubuntu)的典型命令,但请参阅上面链接的官方指南,以获取特定于您的发行版的说明:

# Add NVIDIA package repositories (refer to official guide for latest setup)
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
  | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
    | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

# Update package list and install the toolkit
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

# Configure Docker to use the NVIDIA runtime
sudo nvidia-ctk runtime configure --runtime=docker

# Restart Docker service to apply changes
sudo systemctl restart docker

最后,验证 NVIDIA 运行时已配置并可供 Docker 使用:

docker info | grep -i runtime

您应该会看到 nvidia 被列为可用的运行时之一。

步骤 1:拉取 YOLOv5 Docker 镜像

Ultralytics 在以下位置提供官方 YOLOv5 镜像: 选择官方latest tag 跟踪最新的存储库提交,确保您始终获得最新版本。使用以下命令拉取镜像:

# Define the image name with tag
t=ultralytics/yolov5:latest

# Pull the latest YOLOv5 image from Docker Hub
sudo docker pull $t

您可以在 Ultralytics YOLOv5 Docker Hub 存储库中浏览所有可用的图像。

步骤 2:运行 Docker 容器

拉取镜像后,您可以将其作为容器运行。

仅使用 CPU

要仅使用 CPU 运行交互式容器实例,请使用 -it 标志。这个 --ipc=host 标志允许共享主机 IPC 命名空间,这对于共享内存访问非常重要。

# Run an interactive container instance using CPU
sudo docker run -it --ipc=host $t

使用 GPU

要在容器内启用 GPU 访问,请使用 --gpus 标志。这需要正确安装 NVIDIA 容器工具包。

# Run with access to all available GPUs
sudo docker run -it --ipc=host --gpus all $t

# Run with access to specific GPUs (e.g., GPUs 2 and 3)
sudo docker run -it --ipc=host --gpus '"device=2,3"' $t

有关命令选项的更多详细信息,请参阅Docker run 参考

挂载本地目录

要在容器内使用你的本地文件(数据集、模型权重等),请使用 -v 标志将主机目录挂载到容器中:

# Mount /path/on/host (your local machine) to /path/in/container (inside the container)
sudo docker run -it --ipc=host --gpus all -v /path/on/host:/path/in/container $t

替换 /path/on/host 替换为您机器上的实际路径,并且 /path/in/container 替换为 Docker 容器内的所需路径(例如, /usr/src/datasets)。

步骤 3:在 Docker 容器中使用 YOLOv5 🚀

您现在位于正在运行的 YOLOv5 Docker 容器中!从这里,您可以执行标准的 YOLOv5 命令,以进行各种 机器学习深度学习任务,例如对象检测

# Train a YOLOv5 model on your custom dataset (ensure data is mounted or downloaded)
python train.py --data your_dataset.yaml --weights yolov5s.pt --img 640 # Start training

# Validate the trained model's performance (Precision, Recall, mAP)
python val.py --weights path/to/your/best.pt --data your_dataset.yaml # Validate accuracy

# Run inference on images or videos using a trained model
python detect.py --weights yolov5s.pt --source path/to/your/images_or_videos # Perform detection

# Export the trained model to various formats like ONNX, CoreML, or TFLite for deployment
python export.py --weights yolov5s.pt --include onnx coreml tflite # Export model

浏览文档以了解不同模式的详细用法:

了解更多关于评估指标的信息,例如 精确率召回率mAP。了解不同的导出格式,如 ONNXCoreMLTFLite,并探索各种 模型部署选项。请记住有效地管理您的 模型权重

在 GCP 上的 Docker 容器内运行 YOLOv5

恭喜!您已成功在 Docker 容器中设置并运行 YOLOv5。



📅 创建于 1 年前 ✏️ 更新于 4 个月前

评论