开始在 Docker 中使用 YOLOv5 🚀
欢迎来到 Ultralytics YOLOv5 Docker 快速入门指南!本教程提供了在 Docker 容器中设置和运行 YOLOv5 的分步说明。使用 Docker 使您能够在隔离、一致的环境中运行 YOLOv5,从而简化了跨不同系统的部署和依赖管理。这种方法利用容器化将应用程序及其依赖项打包在一起。
对于其他的设置方法,请参考我们的 Colab Notebook
, GCP 深度学习 VM或 Amazon AWS 指南。有关 Ultralytics 模型 Docker 使用的总体概述,请参阅 Ultralytics Docker 快速入门指南.
准备工作
在开始之前,请确保您已安装以下组件:
- Docker:从 Docker 官方网站下载并安装 Docker。Docker 对于创建和管理容器至关重要。
- NVIDIA 驱动程序(GPU 支持必需):确保您已安装 NVIDIA 驱动程序 455.23 或更高版本。您可以从 NVIDIA 网站下载最新的驱动程序。
- 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。了解不同的导出格式,如 ONNX、CoreML 和 TFLite,并探索各种 模型部署选项。请记住有效地管理您的 模型权重。
恭喜!您已成功在 Docker 容器中设置并运行 YOLOv5。