データをエクスポートする
Public API を使用すると、W&B に保存したデータをエクスポートまたは更新できます。この API を使用する前に、スクリプトからデータをログしてください。詳細については、クイックスタートを参照してください。 Public API のユースケース- データをエクスポートする: データフレームを取得し、Jupyter ノートブックで独自の分析を行います。データを調べた後、分析用の新しい run を作成して結果をログすることで、検出結果を同期できます。例:
wandb.init(job_type="analysis") - 既存の run を更新する: W&B run に関連付けてログされたデータを更新できます。たとえば、複数の run の設定を更新し、元々ログしていなかったアーキテクチャやハイパーパラメーターなどの情報を追加できます。
run データのエクスポート
完了した run または実行中の run からデータをダウンロードします。一般的な用途として、Jupyter ノートブックで独自の分析を行うためにデータフレームをダウンロードしたり、自動化された環境で独自のロジックを使用したりすることが挙げられます。
過去の run のデータを変更または更新することもできます。デフォルトでは、api オブジェクトの単一インスタンスがすべてのネットワークリクエストをキャッシュします。実行中のスクリプトでリアルタイムの情報が必要な場合は、
api.flush() を呼び出して更新された値を取得してください。
複数の run のクエリ
- データフレームと CSV
- MongoDB 形式
このサンプルスクリプトは project を検索し、run 名、設定、サマリー統計を含む run の CSV を出力します。
<entity> と <project> を、それぞれ W&B entity とプロジェクト名に置き換えてください。api.runs を呼び出すと、リストのように動作するイテラブルな Runs オブジェクトが返されます。デフォルトでは、このオブジェクトは必要に応じて順次 50 件ずつ run を読み込みますが、per_page キーワード引数でページごとの読み込み件数を変更できます。
api.runs は order キーワード引数も受け入れます。デフォルトの順序は -created_at です。結果を昇順に並べるには、+created_at を指定してください。設定やサマリーの値で並べ替えることもできます。たとえば、summary.val_acc や config.experiment_name を使用できます。
エラー処理
W&B サーバーとの通信中にエラーが発生すると、wandb.CommError が送出されます。元の例外は exc 属性を通じて調べることができます。
実行中の run で run 名と ID を取得する
wandb.init() を呼び出した後、次のようにスクリプトからランダムな run ID や人間が読みやすい run 名にアクセスできます。
- 一意の run ID (8 文字のハッシュ) :
run.id - ランダムな run 名 (人間が読みやすい形式) :
run.name
- run ID: 生成されたハッシュをそのまま使用します。この値は project 内の run 間で一意である必要があります。
- run 名: 短く読みやすい名前にし、できれば一意にします。こうすることで、チャート上の各線を区別しやすくなります。
- run メモ: run で何を行っているかを簡単に説明するのに最適です。
wandb.init(notes="your notes here")で設定できます。 - run タグ: run タグを使って項目を動的にトラッキングし、UI のフィルターで表を必要な run だけに絞り込めます。タグはスクリプトから設定した後、UI で編集できます。編集は run テーブルと Run page の Overview タブのどちらからでも行えます。詳しい手順はこちらを参照してください。
Public API サンプル
run からメトリクスを読み取る
この例では、"<entity>/<project>/<run_id>" に保存された run について、run.log({"accuracy": acc}) で保存されたタイムスタンプと精度を出力します。
run から特定のメトリクスを読み取る
run から特定のメトリクスを取得するには、keys 引数を使用します。run.history() を使用する場合、サンプル数のデフォルトは 500 です。ログされた step に特定のメトリクスが含まれていない場合、出力データフレームでは NaN として表示されます。keys 引数を指定すると、API は指定されたメトリクスキーを含む step をより高い頻度でサンプリングします。
2 つの run を比較する
run1 と run2 で異なる設定パラメーターが出力されます。
終了済みの run のメトリクスを更新する
この例では、以前の run の精度を0.9 に設定します。
完了した run のメトリクスをリネームする
この例では、表のサマリー列をリネームします。列名の変更は表にのみ適用されます。チャートでは引き続き元のメトリクス名が使用されます。
既存の run の設定を更新する
この例では、設定のうちの 1 つを更新します。システムのリソース消費量を CSV ファイルにエクスポートする
以下のスニペットは、システムのリソース消費量を検索し、CSV に保存します。サンプリングされていないメトリクスデータを取得する
履歴からデータを取得すると、デフォルトでは 500 ポイントにサンプリングされます。run.scan_history() を使用すると、ログされたすべてのデータポイントを取得できます。次の例では、履歴にログされたすべての loss データポイントをダウンロードします。
履歴からページ分割されたデータを取得する
run のサンプリングされていない完全な履歴を取得するには、run.scan_history() を使用します。サンプリングされていない履歴には、run のすべての履歴レコードが含まれます。一方、run.history() によるサンプリングされたビューでは、個々のレコードが省略されることがあります。
page_size パラメーターは、API リクエストごとに取得する履歴レコードの最大数を制御し、デフォルトは 1000 です。リクエストが遅い場合やタイムアウトする場合は、ページサイズを小さくしてみてください。ページを小さくするとタイムアウトのリスクを軽減できますが、より多くの API リクエストが必要になります。
keys パラメーターは、返されるメトリクスを個別にフィルターします。
project 内のすべての run のメトリクスを CSV ファイルにエクスポートする
このスクリプトは、project 内の run を取得し、各 run の名前、設定、サマリー統計を含むデータフレームと CSV を生成します。<entity> と <project> は、それぞれ使用する W&B entity と project 名に置き換えてください。
run の開始時刻を取得する
このコードスニペットは、run が作成された時刻を取得します。完了した run への file のアップロード
以下のコードスニペットは、選択した file を完了した run にアップロードします。run から file をダウンロードする
これは、cifar project の run ID uxte44z7 に関連付けられた file “model-best.h5” を検索し、ローカルに保存します。run のすべてのファイルをダウンロードする
run に関連付けられたすべてのファイルを検索し、ローカルに保存します。特定の sweep から run を取得する
このスニペットは、特定の sweep に関連付けられたすべての run をダウンロードします。sweep から最良の run を取得する
次のスニペットは、指定された sweep から最良の run を取得します。best_run は、sweep の設定の metric パラメーターで定義されたメトリクスが最も優れた run です。
sweep から最良のモデル file をダウンロードする
このスニペットは、モデル file をmodel.h5 に保存した run を含む sweep から、検証精度が最も高いモデル file をダウンロードします。