コンテンツへスキップ

Ultralytics HUB-SDKモデル管理操作ガイド

Ultralytics HUB -SDK モデル管理ドキュメントへようこそ!機械学習モデルの管理を始めたばかりでも、具体的な操作方法を探している熟練のデータサイエンティストでも、適切な場所に来ました。HUB-SDKの機能をスムーズに使いこなし、モデルを効率的に管理するためのノウハウを身につけましょう。

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

機械学習ワークフローでは、しばしば特定のモデルにアクセスする必要があります。Ultralytics HUB -SDKを使えば、IDによるモデルの取得は簡単です。この重要な機能は、提供された一意の識別子に基づいてモデルオブジェクトをセットアップし、モデルの詳細と操作への完全なアクセスを許可します。

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

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

モデルの作成やトレーニングの前に、プロジェクトとデータセットの存在を確認することは非常に重要です。この簡単なコード・スニペットは、これらのコンポーネントのオブジェクトを初期化することで、これらのコンポーネントが利用可能であることを確認するのに役立ちます。プロジェクトとデータセットをモデルトレーニングに利用することは有益ですが、必須ではないことに注意してください。どちらかのIDが欠落している場合、オブジェクトデータ(project.data, dataset.data)は空になる。

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

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

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

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は、これらの詳細を簡単に更新する方法を提供し、手作業によるエラーを最小限に抑え、貴重な時間を節約します。

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

モデルを安全に削除する

モデルの削除は不可逆的であるため、この機能の使用には注意が必要です。システムからモデルを削除したいことが確かな場合、次のコマンドを実行すると、指定されたモデルが関連するすべてのデータとともに永久に削除されます。

model = client.model("Model ID")
model.delete(hard=True)  # Permanently deletes the specified model
デフォルトでは、delete メソッドはソフト削除を実行し、モデルを永久に削除せずに非アクティブとしてマークします。ハード削除を実行し、モデルをその関連データとともに永久に削除したい場合は、上の例に示すように引数 hard=True を渡すことができます。ハード削除オプションは不可逆的であり、指定されたモデルをシステムから完全に削除することになるため、使用する際には注意してください。

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

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

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

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

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

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

# 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はシームレスに対応します。

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

ダイレクト・ダウンロードURLの取得

時には、モデルのリモート保存された成果物に直接アクセスする必要があるかもしれません。この便利な機能は、ベストパフォーマンスのモデルウェイトのような特定のファイルにアクセスし、ダウンロードするためのURLを提供します。

modelId = "<Model ID>"
model = client.model(modelId)
download_url = model.get_download_link("best")  # Retrieves the download link for the best model checkpoint
print("Model download link:", download_url)  # Prints out the download link

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

モデルのチェックポイントのアップロードは upload_model 関数を使用する。チェックポイントの重要度を is_best フラグとトレーニングエポックを明確にする。

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

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


コメント