この機能を使用するには python>=3.8 が必要です
MLFlow からデータをインポートする
importer.collect_runs() は MLFlow サーバー上のすべての run を収集します。特定のサブセットだけを upload したい場合は、独自の run の iterable を作成して importer に渡すこともできます。
Databricks MLflow からインポートする場合は、最初に Databricks CLI を設定する必要があることがあります。前の手順で
mlflow-tracking-uri="databricks" を設定してください。artifacts=False を渡します。
Namespace を渡します:
データをエクスポートする
- データをエクスポートする: Jupyter Notebook でカスタム分析を行うために、データフレーム を取得します。データを分析したら、新しい分析 run を作成して結果をログすることで、分析結果を Sync できます。例:
wandb.init(job_type="analysis") - 既存の Runs を更新する: W&B run に関連付けられてログされたデータを更新できます。たとえば、一連の Runs の設定を更新して、アーキテクチャや、元はログされていなかったハイパーパラメーターなどの追加情報を含めることができます。
APIキーを作成する
- Personal API key
- Service account API key
あなたのユーザー ID に紐づく個人用 APIキーを作成するには、次の手順に従います。
- W&B にログインし、ユーザープロフィールアイコン > User Settings をクリックします。
- Create new API key をクリックします。
- APIキーにわかりやすい名を付けます。
- Create をクリックします。
- 表示された APIキーをすぐにコピーし、安全な場所に保管してください。
APIキーを安全に保管・管理する
推奨される保管方法
- シークレットマネージャー: AWS Secrets Manager、HashiCorp Vault、Azure Key Vault、Google Secret Manager などの専用のシークレット管理システムを使用してください。
- パスワードマネージャー: 信頼できるパスワードマネージャーアプリを使用してください。
- OS レベルのキーチェーン: macOS Keychain、Windows Credential Manager、または Linux Secret Service にキーを保存します。本番環境での使用は推奨されません。
避けるべきこと
- APIキーを Git などのバージョン管理システムにコミットしないでください。
- APIキーを平文の設定ファイルに保存しないでください。
- APIキーをコマンドライン引数として渡さないでください。
psのような OS コマンドの出力に表示されるためです。 - APIキーをメール、チャット、その他の暗号化されていないチャネルで共有しないでください。
- APIキーをソースコードにハードコードしないでください。
環境変数
SDKのバージョン互換性
wandbまたはweave SDKで認証すると、APIキーの長さに関するエラーが発生することがあります。
解決策: より新しいバージョンのSDKに更新してください。
-
wandbSDK v0.22.3+ -
weaveSDK v0.52.17+
WANDB_API_KEY環境変数でAPIキーを設定してください。
run パスを検索する
<entity>/<project>/<run_id> 形式の run パスが必要です。アプリのUIで run のページを開き、Overview タブ をクリックすると、run パスを確認できます。
run データをエクスポート
| Attribute | Meaning |
|---|---|
run.config | トレーニング run のハイパーパラメーターや、データセット Artifact を作成する run の前処理 method など、run の設定情報を格納した辞書です。これらは run の入力と考えてください。 |
run.history() | モデルのトレーニング中に変化する損失などの値を保存するための、辞書の list です。command run.log() はこの object に値を追加します。 |
run.summary | run の結果を要約した情報を格納する辞書です。accuracy や損失のようなスカラー値の場合もあれば、大きなファイルの場合もあります。デフォルトでは、run.log() はログした時系列の最終値を summary に設定します。summary の内容は直接設定することもできます。summary は run の出力と考えてください。 |
api.flush() を呼び出して更新された値を取得してください。
さまざまなrunの属性を理解する
run.config
run.summary
サンプリング
samples __ 引数で変更できます) 。大規模なrunのすべてのデータをエクスポートする場合は、run.scan_history() methodを使用できます。詳細は、API Referenceを参照してください。
複数の Runs をクエリする
- DataFrame と CSV
- MongoDB スタイル
このスクリプト例では、project を検索し、名前、設定、summary 統計を含む Runs の CSV を出力します。
<entity> と <project> は、それぞれお使いの W&B entity と project 名に置き換えてください。api.runs を呼び出すと、反復可能でリストのように振る舞う Runs オブジェクトが返されます。デフォルトでは、このオブジェクトは必要に応じて一度に 50 件の Runs を順次読み込みますが、per_page キーワード引数で 1 ページあたりの読み込み件数を変更できます。
api.runs は order キーワード引数も受け取ります。デフォルトの並び順は -created_at です。結果を昇順にするには、+created_at を指定します。設定や summary の値でソートすることもできます。たとえば、summary.val_acc や config.experiment_name です。
エラー処理
wandb.CommError が送出されます。元の例外は exc 属性から確認できます。
API を使って最新の git コミットを取得する
wandb-metadata.json ファイルにも含まれています。Public API を使用すると、run.commit で git ハッシュを取得できます。
run の実行中に run 名と ID を取得する
wandb.init() を呼び出すと、スクリプトからランダムな run ID や人が読める run 名に次のようにアクセスできます。
- 一意の run ID (8 文字のハッシュ) :
run.id - ランダムな run 名 (人が読める名前) :
run.name
- Run ID: 生成されたハッシュのままにしてください。これはプロジェクト内のすべての run で一意である必要があります。
- Run name: 短く、わかりやすく、できれば一意なものにしてください。そうすることで、チャート上の異なる線を見分けやすくなります。
- Run notes: run で何をしているかを簡単に説明するのに最適です。
wandb.init(notes="your notes here")で設定できます。 - Run tags: run tags で項目を動的にトラッキングし、UI のフィルターを使用して表を必要な run だけに絞り込めます。タグはスクリプトから設定でき、Runs table と run ページの Overview タブの両方で UI から編集できます。詳しい手順はこちらを参照してください。
Public APIの例
matplotlib または seaborn で可視化するためにデータをエクスポートする
run のメトリクスを読み取る
"<entity>/<project>/<run_id>" に保存された run から、run.log({"accuracy": acc}) で保存したタイムスタンプと accuracy を出力します。
Runs をフィルタリングする
日付
run から特定のメトリクスを読み取る
keys 引数を使用します。run.history() を使用する場合のデフォルトのサンプル数は 500 です。特定のメトリクスを含まないログ済みの step は、出力データフレームでは NaN として表示されます。keys 引数を指定すると、API は一覧にあるメトリクス key を含む step をより高い頻度でサンプリングします。
2 つの run を比較する
run1 と run2 で異なる設定パラメーターが出力されます。
完了した run のメトリクスを更新する
0.9 に設定します。また、以前の run の精度ヒストグラムを numpy_array のヒストグラムに置き換えます。
完了したrun内のメトリクス名を変更する
列名の変更が適用されるのは表のみです。チャートでは引き続き、メトリクスは元の名前で参照されます。
既存のrunの設定を更新する
システムリソースの使用量をCSVファイルにエクスポートする
サンプリングされていないメトリクスデータを取得する
run.scan_history() を使用すると、ログされたすべてのデータポイントを取得できます。以下は、history にログされた loss の全データポイントをダウンロードする例です。
history からページ単位でデータを取得する
scan_history のページサイズを小さくしてみてください。デフォルトのページサイズは 500 なので、さまざまなサイズを試して、最も適した値を確認できます:
プロジェクト内のすべての Runs のメトリクスを CSV ファイルにエクスポートする
<entity> と <project> は、それぞれ W&B の entity とプロジェクトの名に置き換えてください。
run の開始時刻を取得する
完了済みの run にファイルをアップロードする
run からファイルをダウンロードする
run からすべてのファイルをダウンロードする
特定の sweep から run を取得する
sweep から最適な run を取得する
best_run は、sweep 設定の metric パラメーターで指定されたメトリクスが最も優れている run です。
sweep から最良のモデルファイルをダウンロードする
model.h5 として保存した Runs を含む sweep から、検証精度が最も高いモデルファイルをダウンロードします。