メインコンテンツへスキップ
データをエクスポートまたはインポートするには、W&B パブリックAPIを使用します。
この機能には python>=3.8 が必要です

MLFlow からデータをインポート

W&B は、MLFlow からのデータのインポートをサポートしており、実験、runs、アーティファクト、メトリクス、その他のメタデータを含みます。 依存関係をインストール:
W&B にログインします。初めてログインする場合は、表示されるプロンプトに従ってください。
既存の MLFlow サーバーからすべての run をインポートします:
デフォルトでは、importer.collect_runs() は MLFlow サーバーからすべての run を収集します。特定のサブセットをアップロードしたい場合は、自分で runs イテラブルを構築し、それをインポーターに渡すことができます。
Databricks MLFlow からインポートする場合、最初にDatabricks CLI を設定することが必要です前のステップで mlflow-tracking-uri="databricks" を設定します。
アーティファクトのインポートをスキップするには、artifacts=False を渡します:
特定の W&B エンティティとプロジェクトにインポートするには、Namespace を渡します:

データのエクスポート

パブリックAPIを使用して、W&B に保存したデータをエクスポートまたは更新します。このAPIを使用する前に、スクリプトからデータをログします。詳細はクイックスタートを確認してください。 パブリックAPIのユースケース
  • データのエクスポート: カスタム分析のために Jupyter ノートブックにデータフレームを取り込みます。データを探索した後、例えば wandb.init(job_type="analysis") のように新しい分析 run を作成し、結果を記録して学びを同期できます。
  • 既存の runs の更新: W&B run に関連して記録されたデータを更新することができます。例えば、最初はログされていなかったアーキテクチャーやハイパーパラメーターの情報を追加するために設定を更新することがあるでしょう。
利用可能な関数の詳細については、生成されたリファレンスドキュメントを参照してください。

APIキーを作成する

APIキーは、マシンをW&Bに認証します。ユーザープロフィールからAPIキーを生成できます。
より効率的なアプローチとして、直接 https://wandb.ai/authorize にアクセスしてAPIキーを生成できます。表示されたAPIキーをコピーし、パスワードマネージャーのような安全な場所に保存してください。
  1. 右上のユーザープロフィールアイコンをクリックします。
  2. ユーザー設定 を選択し、APIキー セクションまでスクロールします。
  3. 表示 をクリックします。表示されるAPIキーをコピーします。APIキーを非表示にするには、ページを再読み込みします。

run パスを見つける

パブリックAPIを使用するには、しばしば <entity>/<project>/<run_id> という形式の run パスが必要になります。アプリUIでrunページを開き、Overviewタブをクリックしてrunパスを取得します。

run データをエクスポートする

完了済みまたはアクティブな run からデータをダウンロードします。一般的な用途には、カスタム分析のために Jupyter ノートブックにデータフレームをダウンロードしたり、カスタムロジックを使用して自動化された環境で利用したりすることが含まれます。
run オブジェクトで最もよく使用される属性は次のとおりです: 過去の runs データも変更したり更新したりすることができます。デフォルトでは、APIオブジェクトのインスタンス1つにつき、すべてのネットワークリクエストがキャッシュされます。実行中のスクリプトでリアルタイム情報が必要な場合、api.flush() を呼び出して更新された値を取得してください。

属性の理解

以下のrunに対して:
これは上記のrunオブジェクトの属性に対する異なる出力です。

run.config

run.history()

run.summary

サンプリング

デフォルトの history メソッドは、メトリクスを固定されたサンプル数(デフォルトは500)にサンプリングします。大規模なrunのすべてのデータをエクスポートしたい場合は、run.scan_history() メソッドを使用してください。詳細はAPIリファレンスを参照してください。

複数の runs のクエリ

このサンプルスクリプトはプロジェクトを検索し、CSVにrun の名前、設定、サマリーステータスを出力します。 <entity><project> をそれぞれあなたのW&Bエンティティとプロジェクト名に置き換えてください。
api.runs を呼び出すと、反復可能でリストのように動作する Runs オブジェクトが返されます。デフォルトでは、オブジェクトは要求に応じて1回に50のrunを順番にロードしますが、per_page キーワード引数を使用してページごとにロードする数を変更できます。 api.runsorderキーワード引数も受け取ります。デフォルトの順序は -created_at です。昇順にするには +created_at を指定してください。設定やサマリーの値でソートすることもできます。例えば、summary.val_acc または config.experiment_name です。

エラーハンドリング

W&B サーバーと話す際にエラーが発生すると、wandb.CommErrorが発生します。元の例外は exc 属性を通じて調査できます。

API を通じて最新の git コミットを取得する

UIでは、runをクリックし、その run ページの Overview タブをクリックして最新の git コミットを見ることができます。それはまた、ファイル wandb-metadata.json の中にあります。パブリックAPIを使用して、run.commitを使用して git ハッシュを取得できます。

run 中の run の名前とIDを取得する

wandb.init() を呼び出した後、スクリプトからランダム run IDまたは人間読み書き可能なrun名にアクセスできます。
  • 一意の run ID(8文字のハッシュ):wandb.run.id
  • ランダム run 名前(人間読み書き可能):wandb.run.name
run の識別子を効果的に設定する方法について考えている場合、以下を推奨します:
  • run ID:生成されたハッシュのままにしておきます。これはプロジェクト内の run で一意である必要があります。
  • run 名前:短く、読み書き可能で、おそらく一意であるべきです。そうすれば、チャートの異なる線間で違いをつけることができます。
  • run ノート:run内で何をしているかを簡単に説明するのに最適です。wandb.init(notes="your notes here") で設定できます。
  • run タグ:run タグで動的に追跡し、UIでフィルターを使用して興味のある run に絞り込みます。スクリプトからタグを設定し、runsテーブルやrunページのoverviewタブでUIからも編集できます。詳細な指示はこちらを参照してください。

公開APIの例

matplotlib または seaborn で視覚化するためにデータをエクスポート

一般的なエクスポートパターンについては、APIの例を確認してください。また、カスタムプロットや拡張されたrunテーブルでダウンロードボタンをクリックして、ブラウザからCSVをダウンロードすることもできます。

run からメトリクスを読む

この例では、wandb.log({"accuracy": acc})で保存されたrunのタイムスタンプと精度を出力します。

runs のフィルタリング

MongoDBクエリ言語を使用してフィルターできます。

日付

特定の run のメトリクスを読む

run から特定のメトリクスを取り出すには、keys 引数を使用します。run.history() の場合、デフォルトのサンプル数は500です。特定のメトリクスを含まないログステップは、出力データフレームで NaN として表示されます。keys 引数を使用すると、APIは指定したメトリックキーを含むステップをより頻繁にサンプリングします。

2つの run を比較する

これは run1run2 の間で異なる設定パラメーターを出力します。
出力:

run が完了した後に、run のメトリクスを更新する

この例では、以前のrunの精度を 0.9 に設定します。また、numpy_array のヒストグラムに以前のrunの精度ヒストグラムを変更します。

完了した run でメトリクスをリネームする

この例ではテーブル内のサマリー列の名前を変更します。
列のリネームはテーブルにのみ適用されます。チャートは元の名前でメトリクスを参照し続けます。

既存の run の設定を更新する

この例では設定のひとつを更新します。

システムリソースの消費をCSVファイルにエクスポートする

以下のスニペットは、システムリソースの消費を見つけ、それらをCSVに保存します。

サンプリングされていないメトリクスデータを取得する

history からデータを取得するとき、デフォルトでは500ポイントにサンプリングされます。run.scan_history()を使用すると全てのログデータポイントが取得できます。以下は、historyでログされたすべての loss データポイントをダウンロードする例です。

history からページ分割されたデータを取得する

メトリクスがバックエンドでゆっくりと取得されている場合やAPIリクエストがタイムアウトしている場合、scan_history でページサイズを下げて、個々のリクエストがタイムアウトしないようにすることができます。デフォルトのページサイズは500なので、どのサイズが最適か試してみてください。

プロジェクト内のすべてのrun からメトリクスをCSVファイルにエクスポートする

このスクリプトは、プロジェクト内のrunを取得し、その名前、設定、およびサマリーステータスを含むデータフレームとCSVを生成します。 <entity><project> をそれぞれあなたのW&Bエンティティとプロジェクト名に置き換えます。

run の開始時間を取得する

このコードスニペットは、run が作成された時間を取得します。

完了した run にファイルをアップロードする

以下のコードスニペットは、選択したファイルを完了したrunにアップロードします。

run からファイルをダウンロードする

これは、cifar プロジェクトの run ID uxte44z7 に関連付けられたファイル “model-best.h5” を見つけ、ローカルに保存します。

run からすべてのファイルをダウンロードする

これはrunに関連付けられたすべてのファイルを見つけ、ローカルに保存します。

特定のスイープから run を取得する

このスニペットは特定のスイープに関連するすべてのrunをダウンロードします。

スイープから最高の run を取得する

次のスニペットは、与えられたスイープから最高のrun を取得します。
best_run は、スイープの設定の metric パラメータで定義されたメトリクスが最高のrunです。

スイープから最高のモデルファイルをダウンロードする

このスニペットは、runでmodel.h5にモデルファイルを保存したスイープから、最高の検証精度を持つモデルファイルをダウンロードします。

run から特定の拡張子のすべてのファイルを削除する

このスニペットは、runの特定の拡張子を持つファイルを削除します。

システムメトリクスデータをダウンロードする

このスニペットは、run のすべてのシステムリソース消費メトリクスのデータフレームを生成し、CSVに保存します。

サマリーメトリクスを更新する

サマリーメトリクスを更新する辞書を渡すことができます。

run を実行したコマンドを取得する

各runは、runの概要ページでそれを開始したコマンドをキャプチャします。このコマンドを API から取得するには次のように実行できます。