Bắt đầu với YOLOv5 🚀 trong Docker
Chào mừng bạn đến với Hướng dẫn nhanh về Docker cho Ultralytics YOLOv5! Hướng dẫn này cung cấp các bước chi tiết để thiết lập và chạy YOLOv5 trong một container Docker. Sử dụng Docker cho phép bạn chạy YOLOv5 trong một môi trường cô lập, nhất quán, giúp đơn giản hóa việc triển khai và quản lý các phụ thuộc trên nhiều hệ thống khác nhau. Phương pháp này tận dụng containerization để đóng gói ứng dụng cùng với các phụ thuộc của nó.
Đối với các phương pháp thiết lập thay thế, hãy xem xét các hướng dẫn của chúng tôi về Colab Notebook
, GCP Deep Learning VM, hoặc Amazon AWS. Để có cái nhìn tổng quan về việc sử dụng Docker với các model của Ultralytics, hãy xem Hướng dẫn nhanh về Docker của Ultralytics.
Điều kiện tiên quyết
Trước khi bắt đầu, hãy đảm bảo bạn đã cài đặt các thành phần sau:
- Docker: Tải xuống và cài đặt Docker từ trang web chính thức của Docker. Docker rất cần thiết để tạo và quản lý các container.
- NVIDIA Drivers (Yêu cầu để hỗ trợ GPU): Đảm bảo bạn đã cài đặt NVIDIA drivers phiên bản 455.23 trở lên. Bạn có thể tải xuống các driver mới nhất từ trang web của NVIDIA.
- NVIDIA Container Toolkit (Yêu cầu để hỗ trợ GPU): Bộ công cụ này cho phép các container Docker truy cập vào GPU NVIDIA trên máy chủ của bạn. Hãy làm theo hướng dẫn cài đặt NVIDIA Container Toolkit chính thức để biết hướng dẫn chi tiết.
Thiết lập NVIDIA Container Toolkit (Dành cho người dùng GPU)
Trước tiên, hãy xác minh rằng NVIDIA drivers của bạn đã được cài đặt chính xác bằng cách chạy:
nvidia-smiLệnh này sẽ hiển thị thông tin về (các) GPU của bạn và phiên bản driver đã cài đặt.
Tiếp theo, hãy cài đặt NVIDIA Container Toolkit. Các lệnh dưới đây thường dùng cho các hệ thống dựa trên Debian như Ubuntu và các hệ thống dựa trên RHEL như Fedora/CentOS, nhưng hãy tham khảo hướng dẫn chính thức được liên kết ở trên để biết các hướng dẫn cụ thể cho bản phân phối của bạn:
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.listCập nhật danh sách gói và cài đặt gói nvidia-container-toolkit:
sudo apt-get updateCài đặt phiên bản mới nhất của nvidia-container-toolkit:
sudo apt-get install -y nvidia-container-toolkit \
nvidia-container-toolkit-base libnvidia-container-tools \
libnvidia-container1Tùy chọn: Cài đặt phiên bản cụ thể của nvidia-container-toolkit
Tùy chọn, bạn có thể cài đặt một phiên bản cụ thể của nvidia-container-toolkit bằng cách thiết lập biến môi trường NVIDIA_CONTAINER_TOOLKIT_VERSION:
export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.17.8-1
sudo apt-get install -y \
nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart dockerXác minh NVIDIA Runtime với Docker
Chạy docker info | grep -i runtime để đảm bảo rằng nvidia xuất hiện trong danh sách các runtime:
docker info | grep -i runtimeBạn sẽ thấy nvidia được liệt kê là một trong các runtime khả dụng.
Bước 1: Pull Docker Image của YOLOv5
Ultralytics cung cấp các image YOLOv5 chính thức trên Docker Hub. Tag latest theo dõi commit gần đây nhất của kho lưu trữ, đảm bảo bạn luôn nhận được phiên bản mới nhất. Pull image bằng lệnh sau:
# Define the image name with tag
t=ultralytics/yolov5:latest
# Pull the latest YOLOv5 image from Docker Hub
sudo docker pull $tBạn có thể duyệt qua tất cả các image khả dụng tại kho lưu trữ Docker Hub của Ultralytics YOLOv5.
Bước 2: Chạy Docker Container
Sau khi image đã được pull, bạn có thể chạy nó dưới dạng một container.
Sử dụng chỉ CPU
Để chạy một instance container tương tác chỉ sử dụng CPU, hãy sử dụng flag -it. Flag --ipc=host cho phép chia sẻ không gian tên IPC của máy chủ, điều này quan trọng đối với việc truy cập bộ nhớ dùng chung.
# Run an interactive container instance using CPU
sudo docker run -it --runtime=nvidia --ipc=host $tSử dụng GPU
Để bật quyền truy cập GPU trong container, hãy sử dụng flag --gpus. Yêu cầu này cần NVIDIA Container Toolkit được cài đặt chính xác.
# Run with access to all available GPUs
sudo docker run -it --runtime=nvidia --ipc=host --gpus all $t
# Run with access to specific GPUs (e.g., GPUs 2 and 3)
sudo docker run -it --runtime=nvidia --ipc=host --gpus '"device=2,3"' $tTham khảo tài liệu tham khảo về lệnh docker run để biết thêm chi tiết về các tùy chọn lệnh.
Mount các thư mục cục bộ
Để làm việc với các tệp cục bộ của bạn (dataset, model weights, v.v.) bên trong container, hãy sử dụng flag -v để mount một thư mục máy chủ vào container:
# Mount /path/on/host (your local machine) to /path/in/container (inside the container)
sudo docker run -it --runtime=nvidia --ipc=host --gpus all -v /path/on/host:/path/in/container $tThay thế /path/on/host bằng đường dẫn thực tế trên máy của bạn và /path/in/container bằng đường dẫn mong muốn bên trong Docker container (ví dụ: /usr/src/datasets).
Bước 3: Sử dụng YOLOv5 🚀 trong Docker Container
Bây giờ bạn đã ở bên trong Docker container đang chạy của YOLOv5! Từ đây, bạn có thể thực thi các lệnh YOLOv5 tiêu chuẩn cho nhiều tác vụ Machine Learning và Deep Learning như Object Detection.
# 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 modelKhám phá tài liệu để biết cách sử dụng chi tiết của các chế độ khác nhau:
Tìm hiểu thêm về các chỉ số đánh giá như Precision, Recall, và mAP. Hiểu các định dạng xuất khác nhau như ONNX, CoreML, và TFLite, và khám phá các Tùy chọn triển khai model khác nhau. Hãy nhớ quản lý model weights của bạn một cách hiệu quả.

Bạn đã thiết lập và chạy thành công YOLOv5 trong một Docker container.