コンテンツへスキップ

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"},  # 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

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

プロジェクトが発展するにつれて、わかりやすくするためにモデル名を変更するなど、モデルのメタデータを更新する必要があるかもしれません。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 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

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

トレーニング・プロセスを通じてモデルのパフォーマンス・メトリクスを追跡・可視化するには、この機能を使って損失や精度などのメトリクスをアップロードします。これにより、トレーニングの進捗状況を継続的に監視し、分析段階を簡素化することができます。

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")  # Retrieves the URL for the model's optimal checkpoint weights. By default, it returns the URL for the best weights. To obtain the most recent weights, specify 'last.
print("Weight URL link:", weight_url)  # Prints out the weight url link

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

モデルのチェックポイントのアップロードは 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は、効率的なモデル管理のための包括的な操作セットを提供し、機械学習の試みで最高の結果を達成することに集中できるようにします。さらにご質問やサポートが必要な場合は、歓迎するコミュニティまたはサポートチームにご連絡ください。良いモデリングを!🚀


コメント