コンテンツへスキップ

Ultralytics HUB-SDK モデル管理

Ultralytics HUB-SDKモデル管理ドキュメントへようこそ!機械学習モデルの管理を始めたばかりの方も、特定の操作手順を探している経験豊富なデータサイエンティストの方も、ここは最適な場所です。このガイドでは、HUB-SDKの機能をスムーズに体験し、モデルを効率的に管理するためのノウハウを確実に習得できるようにします。

一意の識別子でモデルを検索する

機械学習ワークフローでは、特定のモデルにアクセスすることが一般的な要件です。Ultralytics HUB-SDK を使用すると、ID でモデルをフェッチするのが簡単です。この関数は、提供された一意の識別子に基づいてモデルオブジェクトを設定し、モデルの詳細と操作へのフルアクセスを許可します。

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

Accessプロジェクトとデータセットの前提条件

モデルの作成またはトレーニングを行う前に、以下を確認することが重要です。 プロジェクト そして データセット が存在します。次のコードスニペットは、これらのオブジェクトを初期化して、これらのコンポーネントを検証するのに役立ちます。モデルのトレーニングを整理するためにプロジェクトとデータセットを利用することは有益ですが、必須ではありません。いずれかの ID が欠落している場合、オブジェクトデータ(project.data, dataset.data)は空になる。

from hub_sdk import HUBClient

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

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

カスタムコンフィギュレーションで新しいモデルを作成する

作成中 新しいモデル この機能を使用すると、プロジェクトの要件に合わせた設定が簡単に行えます。モデルの名前を指定し、プロジェクトとデータセットに関連付けます。バッチサイズやデバイスの設定など、構成をカスタマイズすることもできます。注意点として、 projectId そして datasetId パラメータは、まだモデルをプロジェクトやデータセットに結びつける準備ができていない場合は、オプションとなります。

from hub_sdk import HUBClient

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

data = {
    "meta": {"name": "sdk model"},  # Model name
    "projectId": project.id,  # Optional: Associate with an existing project
    "datasetId": dataset.id,  # Optional: 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

既存のモデルのメタデータや設定を更新する

プロジェクトの進化に伴い、明確にするために名前を変更するなど、モデルのメタデータを更新する必要が生じる場合があります。SDKは、これらの詳細を簡単に更新する方法を提供し、手動によるエラーを最小限に抑え、時間を節約します。

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

モデルを安全に削除する

モデルの削除は元に戻せませんので、この機能を使用する際は注意してください。システムからモデルを削除する場合は、次のコマンドを実行すると、指定したモデルとその関連データがすべて完全に削除されます。

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

デフォルトでは、 delete メソッドは、ソフト削除を実行し、モデルを完全に削除せずに非アクティブとしてマークします。ハード削除を実行して、モデルを関連データとともに完全に削除する場合は、引数を渡します。 hard=True 上記のように、ハード削除オプションを使用する際は、元に戻せないため、注意してください。

ページネーションで全モデルを一覧表示

Ultralytics HUB-SDK はフェッチを効率化します モデルのリストは、潜在的に大規模なコレクションを効率的にナビゲートするために、ページネーションを実装します。引数( page_sizeまた、プライベート・プロジェクトとパブリック・プロジェクトの両方を見ることができるなど、ニーズに合わせて出力を調整することができる。

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
print("Next page result:", model_list.results)

model_list.previous()  # Return to the previous page
print("Previous page result:", model_list.results)

トレーニングメトリクスのアップロードと可視化

トレーニングプロセス全体を通して、モデルのパフォーマンスメトリックを追跡および視覚化するには、この関数を使用して、損失や精度などのメトリックをアップロードします。これにより、トレーニングの進行状況を継続的に監視し、分析段階を簡素化できます。

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

展開または分析のためにモデルをエクスポートする

デプロイメントや詳細な分析など、さまざまな目的でモデルをエクスポートするのは簡単です。必要な形式を指定すると、この関数がそれに応じてモデルを準備します。TensorFlow形式が必要な場合でも、PyTorch形式が必要な場合でも、SDKがシームレスに処理します。

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

ダイレクト・ウェイトURLの取得

場合によっては、モデルのリモートに保存されたアーティファクトに直接アクセスする必要があるかもしれません。この関数は、最高のパフォーマンスを発揮するモデルの重みなどの特定のファイルにアクセスするためのURLを提供します。

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)

モデルのチェックポイントをアップロードする

アップロード中 モデルチェックポイント を使えば簡単だ。 upload_model 機能。チェックポイントの重要性を示すには、 is_best フラグとトレーニングエポックを明確にする。

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

結論

Ultralytics HUB-SDK は、効果的なモデル管理のための包括的な操作セットを提供し、機械学習の取り組みで最高の結果を達成することに集中できるようにします。ご質問やご支援が必要な場合は、コミュニティまたはサポートチームにお問い合わせください。ハッピーモデリング!🚀



📅作成:1年前 ✏️更新:1ヶ月前

コメント