Meet YOLO26: next-gen vision AI.

Link to this sectionBắ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. Việc 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 quá trình triển khai và quản lý các dependency trên các 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 các dependency của nó.

Đối với các phương pháp thiết lập thay thế, hãy cân nhắc Colab Notebook Open In Colab Open In Kaggle, GCP Deep Learning VM, hoặc các hướng dẫn Amazon AWS của chúng tôi. Để có cái nhìn tổng quan về việc sử dụng Docker với các model Ultralytics, hãy xem Hướng dẫn nhanh về Docker cho Ultralytics.

Link to this sectionĐ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 mục sau:

  1. 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.
  2. NVIDIA Drivers (Bắt buộc để hỗ trợ GPU): Đảm bảo bạn đã cài đặt driver NVIDIA 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.
  3. 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 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 các chỉ dẫn chi tiết.

Link to this sectionThiết lập NVIDIA Container Toolkit (Người dùng GPU)#

Đầu tiên, hãy xác minh rằng các driver 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 driver đã cài đặt.

Tiếp theo, cài đặt NVIDIA Container Toolkit. Các lệnh dưới đây là tiêu chuẩn 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 chỉ 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.list

Cập nhật danh sách gói và cài đặt gói nvidia-container-toolkit:

sudo apt-get update

Cà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-container1
Tù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 đặt 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 docker

Link to this sectionXác minh NVIDIA Runtime với Docker#

Chạy docker info | grep -i runtime để đảm bảo nvidia xuất hiện trong danh sách các runtime:

docker info | grep -i runtime

Bạn sẽ thấy nvidia được liệt kê là một trong những runtime khả dụng.

Link to this sectionBước 1: Pull Docker Image YOLOv5#

Ultralytics cung cấp các image YOLOv5 chính thức trên Docker Hub. Tag latest theo dõi commit mới nhất của repository, đảm bảo bạn luôn nhận được phiên bản mới nhất. Hãy 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 $t

Bạn có thể duyệt qua tất cả các image khả dụng tại repository Docker Hub của Ultralytics YOLOv5.

Link to this sectionBước 2: Chạy Docker Container#

Sau khi đã pull image, bạn có thể chạy nó như một container.

Link to this sectionChỉ sử dụng CPU#

Để chạy một instance container tương tác chỉ sử dụng CPU, hãy dùng flag -it. Flag --ipc=host cho phép chia sẻ namespace IPC của host, điều này rất quan trọng để truy cập vào bộ nhớ dùng chung.

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

Link to this sectionSử dụng GPU#

Để bật quyền truy cập GPU trong container, hãy dùng flag --gpus. Việc này yêu cầu 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"' $t

Tham khảo tài liệu tham khảo về docker run để biết thêm chi tiết về các tùy chọn lệnh.

Link to this sectionMount 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 (dataset, model weights, v.v.) bên trong container, hãy dùng flag -v để mount một thư mục trên host vào trong 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 $t

Thay 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).

Link to this sectionBước 3: Sử dụng YOLOv5 🚀 bên trong Docker Container#

Bạn hiện đang ở trong Docker container YOLOv5 đang chạy! 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 LearningDeep Learning khác nhau 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 model

Khám phá tài liệu để biết cách sử dụng chi tiết cho từng mode:

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, đồng thời khám phá nhiều Tùy chọn triển khai model. Hãy nhớ quản lý model weights của bạn một cách hiệu quả.

Running YOLOv5 inside a Docker container on GCP

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

Bình luận