企业级安全防护: 符合 ISO 27001 + SOC 2 Type I 标准。

Link to this section在 Docker 中开始使用 YOLOv5 🚀#

Welcome to the Ultralytics YOLOv5 Docker Quickstart Guide! This tutorial provides step-by-step instructions for setting up and running YOLOv5 within a Docker container. Using Docker enables you to run YOLOv5 in an isolated, consistent environment, simplifying deployment and dependency management across different systems. This approach leverages containerization to package the application and its dependencies together.

如需其他设置方法,请参考我们的 Colab Notebook Open In Colab Open In KaggleGCP 深度学习虚拟机Amazon AWS 指南。有关将 Docker 与 Ultralytics 模型配合使用的常规概览,请参阅 Ultralytics Docker 快速入门指南

Link to this section前提条件#

在开始之前,请确保已安装以下内容:

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

Link to this section设置 NVIDIA Container Toolkit(GPU 用户)#

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

nvidia-smi

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

接下来,安装 NVIDIA Container Toolkit。以下命令适用于 Ubuntu 等基于 Debian 的系统以及 Fedora/CentOS 等基于 RHEL 的系统,但请参考上面链接的官方指南以获取特定于你发行版的说明:

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

更新软件包列表并安装 NVIDIA Container Toolkit:

sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

Link to this section使用 Docker 验证 CDI 设备#

运行 nvidia-ctk cdi list 以确保 GPU CDI 设备可用(在 toolkit >= 1.18 版本中,工具包的 nvidia-cdi-refresh 服务会自动生成并维护规范):

nvidia-ctk cdi list

你应该能看到诸如 nvidia.com/gpu=0nvidia.com/gpu=all 之类的条目。在 Linux 上,CDI 设备请求需要 Docker >= 28.2.0 和 NVIDIA Container Toolkit >= 1.18。旧版 --gpus all 标志可能会在宿主机守护进程重新加载后丢失 GPU 访问权限,因此请升级较旧的 Linux 宿主机并改用 --device

Link to this section第 1 步:拉取 YOLOv5 Docker 镜像#

Ultralytics 在 Docker Hub 上提供了官方 YOLOv5 镜像。latest 标签跟踪仓库的最新提交,确保你始终获得最新版本。使用以下命令拉取镜像:

# 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 仓库 浏览所有可用镜像。

Link to this section第 2 步:运行 Docker 容器#

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

Link to this section仅使用 CPU#

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

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

Link to this section使用 GPU#

要启用容器内的 GPU 访问权限,请使用 --device nvidia.com/gpu=... CDI 标志。这要求正确安装 NVIDIA Container Toolkit。

# Run with access to all available GPUs
sudo docker run -it --ipc=host --device nvidia.com/gpu=all $t

# Run with access to specific GPUs (e.g., GPUs 2 and 3)
sudo docker run -it --ipc=host --device nvidia.com/gpu=2 --device nvidia.com/gpu=3 $t

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

Link to this section挂载本地目录#

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

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

/path/on/host 替换为你机器上的实际路径,并将 /path/in/container 替换为 Docker 容器内的目标路径(例如 /usr/src/datasets)。

Link to this section第 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,并探索各种 模型部署选项。请记住有效地管理你的 模型权重

Running YOLOv5 inside a Docker container on GCP

你已成功在 Docker 容器中设置并运行了 YOLOv5。

评论