Bỏ qua nội dung

Ultralytics Hướng dẫn vận hành quản lý mô hình HUB-SDK

Chào mừng đến với Ultralytics Tài liệu về Quản lý mô hình HUB-SDK! Cho dù bạn mới bắt đầu quản lý các mô hình học máy hay là một nhà khoa học dữ liệu dày dạn kinh nghiệm đang tìm kiếm hướng dẫn vận hành cụ thể, bạn đã đến đúng nơi rồi. Hãy cùng bắt đầu hành trình suôn sẻ qua các tính năng của HUB-SDK, đảm bảo bạn có được bí quyết để quản lý hiệu quả các mô hình của mình.

Lấy một mô hình bằng mã định danh duy nhất của nó

Trong quy trình làm việc học máy, bạn thường cần truy cập vào một mô hình cụ thể. Với Ultralytics HUB-SDK, việc lấy một mô hình theo ID của nó thật dễ dàng. Chức năng thiết yếu này thiết lập một đối tượng mô hình dựa trên mã định danh duy nhất được cung cấp, cấp cho bạn quyền truy cập đầy đủ vào các chi tiết và hoạt động của mô hình.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

model = client.model("<Model ID>")
print(model.data)  # Outputs the model's metadata and configuration

Điều kiện tiên quyết của Dự án và Bộ dữ liệu Access

Trước khi tạo hoặc đào tạo mô hình, việc đảm bảo sự hiện diện của cả dự án và tập dữ liệu là rất quan trọng. Đoạn mã đơn giản này giúp bạn xác minh các thành phần này có sẵn bằng cách khởi tạo các đối tượng của chúng. Mặc dù việc sử dụng dự án và tập dữ liệu để tổ chức đào tạo mô hình là có lợi, nhưng điều quan trọng cần lưu ý là điều này không bắt buộc. Nếu thiếu một trong hai ID, dữ liệu đối tượng (project.data, dataset.data) sẽ trống.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

project = client.project("<Project ID>")
dataset = client.dataset("<Dataset ID>")

Tạo một mô hình mới với cấu hình tùy chỉnh

Việc tạo một mô hình mới phù hợp với yêu cầu dự án của bạn trở nên đơn giản với chức năng tiện lợi này. Chỉ định tên mô hình và liên kết nó với dự án và tập dữ liệu của bạn. Bạn cũng có thể tùy chỉnh cấu hình để phù hợp với nhu cầu của mình, chẳng hạn như thiết lập kích thước lô hoặc thiết bị, trong số những thứ khác. Lưu ý rằng projectIddatasetId các tham số là tùy chọn nếu bạn chưa sẵn sàng liên kết mô hình với một dự án hoặc tập dữ liệu.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

data = {
    "meta": {"name": "sdk model"},  # Give your model a recognizable name
    "projectId": project.id,  # Associate with an existing project
    "datasetId": dataset.id,  # Associate with an existing dataset
    "config": {  # Define hyperparameters and settings
        "batchSize": "-1",
        "cache": "ram",
        "device": "name",
        "epochs": "5",
        "imageSize": "640",
        "patience": "5",  # Stop training if validation doesn't improve
    },
}
model = client.model()
model.create_model(data)  # Creates the model with your specified details

Cập nhật siêu dữ liệu hoặc cấu hình của mô hình hiện có

Khi các dự án phát triển, bạn có thể cần cập nhật siêu dữ liệu của mô hình, chẳng hạn như đổi tên để rõ ràng hơn. SDK cung cấp phương pháp làm mới các chi tiết này một cách dễ dàng, giảm thiểu lỗi thủ công và tiết kiệm thời gian quý báu của bạn.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

model = client.model("<Model ID>")
model.update({"meta": {"name": "Updated Model Name"}})  # Renames the specified model

Xóa mô hình một cách an toàn

Việc xóa một mô hình là không thể đảo ngược, vì vậy nên sử dụng chức năng này một cách thận trọng. Khi bạn chắc chắn muốn xóa một mô hình khỏi hệ thống, lệnh sau sẽ xóa vĩnh viễn mô hình đã chỉ định cùng với tất cả dữ liệu liên quan.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

model = client.model("<Model ID>")
model.delete(hard=True)  # Permanently deletes the specified model

Theo mặc định, phương thức xóa thực hiện xóa mềm, đánh dấu mô hình là không hoạt động mà không xóa vĩnh viễn. Nếu bạn muốn thực hiện xóa cứng và xóa mô hình cùng với dữ liệu liên quan vĩnh viễn, bạn có thể truyền đối số hard=True như thể hiện trong ví dụ trên. Hãy thận trọng khi sử dụng tùy chọn xóa cứng vì nó không thể đảo ngược và dẫn đến việc xóa hoàn toàn mô hình đã chỉ định khỏi hệ thống.

Liệt kê tất cả các mô hình của bạn với phân trang

Ultralytics HUB-SDK hợp lý hóa nhiệm vụ tìm nạp danh sách các mô hình, đồng thời triển khai phân trang để điều hướng hiệu quả qua các bộ sưu tập mô hình có khả năng lớn. Bằng cách tùy chỉnh các đối số như page_size, bạn có thể tùy chỉnh đầu ra theo nhu cầu của mình, bao gồm khả năng xem cả dự án riêng tư và công khai.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

model_list = client.model_list(page_size=10)  # Fetches the first page with 10 models
print("Current result:", model_list.results)  # Displays the current page's models

model_list.next()  # Move to the next page of results
print("Next page result:", model_list.results)  # Displays the next page's models

model_list.previous()  # Return to the previous page of results
print("Previous page result:", model_list.results)  # Displays the previous page's models

Tải lên và trực quan hóa số liệu đào tạo

Để theo dõi và trực quan hóa số liệu hiệu suất của mô hình trong suốt quá trình đào tạo, hãy sử dụng chức năng này để tải lên các số liệu như mất mát và độ chính xác. Điều này cho phép theo dõi liên tục tiến trình đào tạo và đơn giản hóa giai đoạn phân tích.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

model = client.model("<Model ID>")

# Define your metrics structure. Keys are steps, and values are JSON strings of metrics.
data = {
    1: '{"loss/1": 0.5, "accuracy/1": 0.85}',
    2: '{"loss/2": 0.4, "accuracy/2": 0.88}',
    3: '{"loss/3": 0.3, "accuracy/3": 0.90}',
}

model.upload_metrics(data)  # Uploads the specified metrics to the model

Xuất mô hình của bạn để triển khai hoặc phân tích

Xuất mô hình cho nhiều mục đích khác nhau như triển khai hoặc phân tích chuyên sâu chưa bao giờ dễ dàng đến thế. Chỉ định định dạng bạn yêu cầu và chức năng này sẽ chuẩn bị mô hình theo đó. Cho dù bạn cần Tensorflow hoặc một PyTorch định dạng, SDK sẽ xử lý nó một cách liền mạch.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

model = client.model("<Model ID>")
model.export(format="pyTorch")  # Exports the model as a PyTorch file

Lấy URL Trọng số Trực tiếp

Thỉnh thoảng, bạn có thể cần truy cập trực tiếp vào các hiện vật được lưu trữ từ xa của mô hình. Chức năng tiện lợi này cung cấp URL để truy cập các tệp cụ thể như trọng số mô hình hoạt động tốt nhất của bạn.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

model = client.model("<Model ID>")
weight_url = model.get_weights_url("best")  # or "last"
print("Weight URL link:", weight_url)  # Prints out the weight url link

Tải lên một điểm kiểm tra mô hình

Việc tải lên một điểm kiểm tra mô hình được thực hiện đơn giản với upload_model chức năng. Chỉ cần chỉ ra tầm quan trọng của điểm kiểm tra với is_best cờ và thời gian đào tạo để làm rõ.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

model = client.model("<Model ID>")
model.upload_model(is_best=True, epoch=5, weights="<Weight File>")  # Uploads the specified model checkpoint

Tóm lại, Ultralytics HUB-SDK cung cấp một bộ hoạt động toàn diện để quản lý mô hình hiệu quả, cho phép bạn tập trung vào việc đạt được kết quả tốt nhất trong các nỗ lực học máy của mình. Nếu bạn có bất kỳ câu hỏi nào khác hoặc cần hỗ trợ, vui lòng liên hệ với cộng đồng hoặc nhóm hỗ trợ chào đón của chúng tôi. Chúc bạn lập mô hình vui vẻ! 🚀

Bình luận