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