Bắt đầu với YOLOv5 🚀 trong Docker
Chào mừng bạn đến với Hướng dẫn Khởi động Nhanh Docker Ultralytics YOLOv5! Hướng dẫn này cung cấp hướng dẫn từng bước để thiết lập và chạy YOLOv5 trong một vùng chứa Docker. Sử dụng Docker cho phép bạn chạy YOLOv5 trong một môi trường biệt lập, nhất quán, đơn giản hóa việc triển khai và quản lý các dependency trên các hệ thống khác nhau. Cách tiếp cận này tận dụng containerization để đóng gói ứng dụng và các dependency của nó lại với nhau.
Để có các phương pháp thiết lập thay thế, hãy xem xét Sổ tay Colab
, Máy ảo học sâu GCP, hoặc Amazon AWS hướng dẫn. Để biết tổng quan về việc sử dụng Docker với các mô hình Ultralytics, hãy xem Hướng dẫn bắt đầu nhanh Ultralytics Docker.
Điều kiện tiên quyết
Trước khi bắt đầu, hãy đảm bảo bạn đã cài đặt những thứ 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.
- Trình điều khiển NVIDIA (Bắt buộc để hỗ trợ GPU): Đảm bảo bạn đã cài đặt trình điều khiển NVIDIA phiên bản 455.23 trở lên. Bạn có thể tải xuống trình điều khiển mới nhất từ trang web của NVIDIA.
- NVIDIA Container Toolkit (Bắt buộc để hỗ trợ GPU): Bộ công cụ này cho phép các container Docker truy cập vào GPU NVIDIA của máy chủ. 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 (Người dùng GPU)
Đầu tiên, hãy xác minh rằng trình điều khiển NVIDIA của bạn đã được cài đặt chính xác bằng cách chạy:
nvidia-smi
Lệnh này sẽ hiển thị thông tin về (các) GPU của bạn và phiên bản trình điều khiển đã cài đặt.
Tiếp theo, cài đặt NVIDIA Container Toolkit. Các lệnh dưới đây là tiêu biểu cho các hệ thống dựa trên Debian như Ubuntu, nhưng hãy tham khảo hướng dẫn chính thức được liên kết ở trên để biết hướng dẫn cụ thể cho bản phân phối của bạn:
# 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
Cuối cùng, xác minh rằng NVIDIA runtime đã được định cấu hình và khả dụng cho Docker:
docker info | grep -i runtime
Bạn sẽ thấy nvidia
được liệt kê là một trong các môi trường thực thi sẵn có.
Bước 1: Kéo YOLOv5 Hình ảnh Docker
Ultralytics cung cấp các hình ảnh YOLOv5 chính thức trên Trung tâm Docker. Các latest
tag theo dõi commit kho lưu trữ gần đây nhất, đảm bảo bạn luôn nhận được phiên bản mới nhất. Kéo hình ảnh 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 $t
Bạn có thể xem tất cả hình ảnh có sẵn tại Ultralytics YOLOv5 Docker Hub repository.
Bước 2: Chạy Docker Container
Sau khi image được pull, bạn có thể chạy nó như một container.
Sử dụng CPU Chỉ một
Để chạy một instance container tương tác chỉ sử dụng CPU, hãy sử dụng -it
cờ. --ipc=host
cho phép chia sẻ namespace IPC của host, điều này rất quan trọng để truy cập bộ nhớ dùng chung.
# Run an interactive container instance using CPU
sudo docker run -it --ipc=host $t
Sử dụng GPU
To enable GPU access within the container, use the --gpus
cờ. Điều này yêu cầu NVIDIA Container Toolkit phải được cài đặt chính xác.
# 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
Tham khảo Docker run reference để biết thêm chi tiết về các tùy chọn lệnh.
Gắn kết các thư mục cục bộ
Để làm việc với các tập tin cục bộ của bạn (bộ dữ liệu, trọng số mô hình, v.v.) bên trong container, hãy sử dụng -v
cờ để gắn 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 --ipc=host --gpus all -v /path/on/host:/path/in/container $t
Thay thế /path/on/host
với đường dẫn thực tế trên máy của bạn và /path/in/container
với đường dẫn mong muốn bên trong container Docker (ví dụ: /usr/src/datasets
).
Bước 3: Sử dụng YOLOv5 🚀 bên trong Docker Container
Bây giờ bạn đang ở bên trong vùng chứa YOLOv5 Docker đang chạy! Từ đây, bạn có thể thực thi các lệnh YOLOv5 tiêu chuẩn cho các tác vụ Học máy và Học sâu khác nhau như Phát hiện đối tượng.
# 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
Tham khảo tài liệu để biết chi tiết cách sử dụng các chế độ khác nhau:
Tìm hiểu thêm về các chỉ số đánh giá như Độ chính xác (Precision), Độ phủ (Recall) và mAP. Tìm 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 Mô hình khác nhau. Hãy nhớ quản lý trọng số mô hình của bạn một cách hiệu quả.
Xin chúc mừng! Bạn đã cài đặt và chạy thành công YOLOv5 trong một container Docker.