Khám phá cách Ultralytics đối tác với Comet vì Ultralytics YOLOv5 tối ưu hóa mô hình: theo dõi thời gian thực, hợp tác chặt chẽ và khả năng tái tạo được cải thiện.
Tại Ultralytics Chúng tôi hợp tác thương mại với các công ty khởi nghiệp khác để giúp chúng tôi tài trợ cho nghiên cứu và phát triển các công cụ nguồn mở tuyệt vời của chúng tôi, như YOLOv5, để giữ chúng miễn phí cho tất cả mọi người. Bài viết này có thể chứa các liên kết liên kết đến các đối tác đó.
Đối tác mới nhất của chúng tôi, Comet, xây dựng các công cụ giúp các nhà khoa học dữ liệu, kỹ sư và trưởng nhóm tăng tốc và tối ưu hóa các mô hình học máy và học sâu.
Comet là một công cụ mạnh mẽ để theo dõi các mô hình, bộ dữ liệu và số liệu của bạn. Nó thậm chí còn ghi lại các biến hệ thống và môi trường của bạn để đảm bảo khả năng tái tạo và gỡ lỗi trơn tru cho mỗi lần chạy. Nó giống như có một trợ lý ảo biết một cách kỳ diệu những ghi chú cần giữ. Theo dõi và trực quan hóa các chỉ số mô hình trong thời gian thực, lưu siêu tham số, tập dữ liệu và điểm kiểm tra mô hình, đồng thời trực quan hóa các dự đoán mô hình của bạn với Comet Bảng điều khiển tùy chỉnh!
Hơn nữa Comet Đảm bảo bạn không bao giờ mất dấu công việc của mình và giúp bạn dễ dàng chia sẻ kết quả và cộng tác giữa các nhóm thuộc mọi quy mô!
YOLOv5 là một điểm khởi đầu tuyệt vời cho hành trình thị giác máy tính của bạn. Để cải thiện hiệu suất của mô hình và chuẩn bị sẵn sàng sản xuất, bạn sẽ cần ghi lại kết quả trong một công cụ theo dõi thử nghiệm như Comet.
Các Comet và YOLOv5 Tích hợp cung cấp 3 tính năng chính:
Hướng dẫn này sẽ bao gồm cách sử dụng YOLOv5 với Comet.
Vì vậy, sẵn sàng để theo dõi thử nghiệm của bạn trong thời gian thực? Bắt đầu nào!
Cài đặt pip comet_Ml
Có hai cách để cấu hình Comet với YOLOv5.
Bạn có thể đặt thông tin đăng nhập của mình thông qua các biến môi trường hoặc tạo tệp .comet.config trong thư mục làm việc của bạn và đặt thông tin đăng nhập của bạn ở đó.
xuất khẩu COMET_API_KEY=xuất khẩu COMET_PROJECT_NAME= # Điều này sẽ mặc định là 'yolov5'
[comet] api_key= project_name=<Your Comet API Key># This will default to 'yolov5'
# Đào tạo YOLOv5s trên COCO128 cho 5 kỷ nguyênpython train.py --img 640 --đợt 16 --kỷ nguyên 5 --dữ liệu coco128.yaml --trọng lượng yolov5s.pt
Đó là nó!
Comet sẽ tự động ghi lại các siêu tham số, đối số dòng lệnh, số liệu đào tạo và xác thực của bạn. Bạn có thể hình dung và phân tích các hoạt động của mình trong Comet UI.
Kiểm tra một ví dụ về một chạy hoàn thành ở đây.
Hoặc tốt hơn nữa, hãy tự mình thử nó trong Colab Notebook này.
Theo mặc định, Comet sẽ ghi lại các mục sau:
Comet có thể được cấu hình để ghi dữ liệu bổ sung thông qua cờ dòng lệnh được chuyển đến tập lệnh đào tạo hoặc các biến môi trường.
xuất khẩu COMET_MODE=online # Đặt có chạy hay không Comet ở chế độ 'Trực tuyến' hoặc 'Ngoại tuyến'. Mặc định là onlineexport COMET_MODEL_NAME= #Set tên cho mô hình đã lưu. Mặc định là yolov5export COMET_LOG_CONFUSION_MATRIX=false # Đặt để tắt ghi nhật ký a Comet Ma trận nhầm lẫn. Mặc định là trueexport COMET_MAX_IMAGE_UPLOADS= # Kiểm soát tổng số lần dự đoán hình ảnh cần đăng nhập Comet. Mặc định là 100.export COMET_LOG_PER_CLASS_METRICS=true # Đặt để ghi nhật ký số liệu đánh giá cho từng lớp được phát hiện khi kết thúc khóa đào tạo. Mặc định là falseexport COMET_DEFAULT_CHECKPOINT_FILENAME= # Đặt tùy chọn này nếu bạn muốn tiếp tục đào tạo từ một trạm kiểm soát khác. Mặc định là 'last.pt'export COMET_LOG_BATCH_LEVEL_METRICS=true # Đặt tùy chọn này nếu bạn muốn ghi lại số liệu đào tạo ở cấp độ hàng loạt. Mặc định là false.export COMET_LOG_PREDICTIONS=true # Đặt tùy chọn này thành false để tắt dự đoán mô hình ghi nhật ký
Mô hình ghi nhật ký để Comet bị tắt theo mặc định. Để kích hoạt nó, hãy chuyển đối số khoảng thời gian lưu vào tập lệnh đào tạo. Thao tác này sẽ lưu các điểm kiểm tra đã đăng nhập vào Comet dựa trên giá trị khoảng thời gian được cung cấp bởi khoảng thời gian tiết kiệm.
python train.py \
--IMG 640 \
--Đợt 16 \
--kỷ nguyên 5 \
--dữ liệu coco128.yaml \
--trọng lượng yolov5s.pt \
--tiết kiệm-tiết kiệm 1
Theo mặc định, các dự đoán mô hình (hình ảnh, nhãn sự thật cơ bản và hộp giới hạn) sẽ được ghi vào Comet. Bạn có thể kiểm soát tần suất của các dự đoán đã ghi và các hình ảnh liên quan bằng cách truyền đối số dòng lệnh bbox_interval. Dự đoán có thể được hình dung bằng cách sử dụng Comet'Bảng tùy chỉnh phát hiện đối tượng. Tần số này tương ứng với mỗi lô dữ liệu thứ N trên mỗi kỷ nguyên. Trong ví dụ dưới đây, chúng tôi đang ghi lại mỗi đợt dữ liệu thứ 2 cho mỗi kỷ nguyên.
Lưu ý: Các YOLOv5 Trình tải dữ liệu xác thực sẽ mặc định kích thước lô là 32, vì vậy bạn sẽ phải đặt tần suất ghi nhật ký cho phù hợp.
Đây là một dự án ví dụ sử dụng Bảng điều khiển.
python train.py \--img 640 \--- lô 16 \--kỷ nguyên 5 \--data coco128.yaml \--trọng lượng yolov5s.pt \--bbox_interval 2
Khi ghi lại dự đoán từ YOLOv5, Comet sẽ ghi lại các hình ảnh liên quan đến từng bộ dự đoán. Theo mặc định, tối đa 100 hình ảnh xác thực được ghi lại. Bạn có thể tăng hoặc giảm số này bằng cách sử dụng COMET_MAX_IMAGE_UPLOADS biến môi trường.
ENV COMET_MAX_IMAGE_UPLOADS=200python train.py \--img 640 \--đợt 16 \--kỷ nguyên 5 \--data coco128.yaml \--trọng lượng yolov5s.pt \--bbox_interval 1
Sử dụng COMET_LOG_PER_CLASS_METRICS biến môi trường để ghi lại mAP, độ chính xác, thu hồi và f1 cho mỗi lớp.
ENV COMET_LOG_PER_CLASS_METRICS=true python train.py \--img 640 \--lô 16 \--kỷ nguyên 5 \--dữ liệu coco128.yaml \--trọng số yolov5s.pt
Nếu bạn muốn lưu trữ dữ liệu của mình bằng cách sử dụng Comet Hiện vật, bạn có thể làm như vậy bằng cách sử dụng cờ upload_dataset.
Tập dữ liệu được tổ chức theo cách được mô tả trong YOLOv5 tài liệu. Tệp yaml cấu hình tập dữ liệu phải tuân theo định dạng tương tự như tệp coco128.yaml.
python train.py \--img 640 \--lô 16 \--kỷ nguyên 5 \--dữ liệu coco128.yaml \--trọng lượng yolov5s.pt \--upload_dataset
Bạn có thể tìm thấy tập dữ liệu đã tải lên trong tab Cấu phần phần mềm trong Comet Workspace
Bạn có thể xem trước dữ liệu trực tiếp trong Comet UI.
Các thành phần lạ được lập phiên bản và cũng hỗ trợ thêm siêu dữ liệu về tập dữ liệu. Comet sẽ tự động ghi lại siêu dữ liệu từ tệp yaml tập dữ liệu của bạn.
Nếu bạn muốn sử dụng tập dữ liệu từ Comet Thành phần lạ, hãy đặt biến đường dẫn trong tệp yaml tập dữ liệu của bạn để trỏ đến URL tài nguyên cấu phần phần mềm sau.
# Nội dung của đường dẫn tệp artifact.yaml: "comet:///:"
Sau đó chuyển tệp này vào tập lệnh đào tạo của bạn theo cách sau:
python train.py \--img 640 \--lô 16 \--kỷ nguyên 5 \--dữ liệu artifact.yaml \--trọng số yolov5s.pt
Thành phần lạ cũng cho phép bạn theo dõi dòng dữ liệu khi dữ liệu chảy qua quy trình làm việc Thử nghiệm của bạn. Tại đây, bạn có thể thấy biểu đồ hiển thị cho bạn tất cả các thử nghiệm đã sử dụng tập dữ liệu đã tải lên của bạn.
Nếu quá trình đào tạo của bạn bị gián đoạn vì bất kỳ lý do gì, ví dụ: kết nối internet bị gián đoạn, bạn có thể tiếp tục chạy bằng cách sử dụng cờ sơ yếu lý lịch và Comet Chạy đường dẫn.
Đường dẫn chạy có định dạng sau comet:////.
Điều này sẽ khôi phục quá trình chạy về trạng thái trước khi bị gián đoạn, bao gồm khôi phục mô hình từ điểm kiểm tra, khôi phục tất cả các siêu tham số và đối số đào tạo và tải xuống Comet tập dữ liệu Artifacts nếu chúng được sử dụng trong lần chạy ban đầu. Quá trình chạy tiếp tục sẽ tiếp tục ghi vào Thử nghiệm hiện có trong Comet UI.
python train.py \--tiếp tục "comet://"
YOLOv5 cũng được tích hợp với CometTrình tối ưu hóa, giúp dễ dàng hình dung các lần quét siêu tham số trong Comet UI.
Để cấu hình Comet Trình tối ưu hóa, bạn sẽ phải tạo một tệp JSON với thông tin về việc quét.
Một tệp ví dụ đã được cung cấp trong:
tiện ích / logger /comet/optimizer_config.json python tiện ích / logger /comet/hpo.py \--comet_optimizer_config "tiện ích / logger /comet/optimizer_config.json"
Tập lệnh hpo.py chấp nhận các đối số tương tự như train.py. Nếu bạn muốn chuyển các đối số bổ sung vào quét của mình, chỉ cần thêm chúng sau tập lệnh.
python tiện ích / logger /comet/hpo.py \--comet_optimizer_config "tiện ích / logger /comet/optimizer_config.json" \--lưu-tiết 1 \--bbox_interval 1
comet Trình tối ưu hóa -j utils / logger /comet/hpo.py \utils/loggers/comet/optimizer_config.json"
Comet Cung cấp nhiều cách để hình dung kết quả quét của bạn. Hãy xem một dự án đã hoàn thành quét tại đây:
Bắt đầu sử dụng Tích hợp với Comet để quản lý, trực quan hóa và tối ưu hóa YOLOv5 Mô hình — từ đào tạo chạy đến giám sát sản xuất.
Và, tất nhiên, tham gia Ultralytics Cộng đồng – nơi đặt câu hỏi và chia sẻ lời khuyên về YOLOv5 đào tạo, xác nhận và triển khai.
Bắt đầu hành trình của bạn với tương lai của machine learning