データをエクスポートする
Public API を使用して、W&B に保存したデータをエクスポートまたは更新できます。この API を使用する前に、スクリプトからデータをログしてください。詳細は クイックスタート を参照してください。 Public API のユースケース- データをエクスポートする: Jupyter Notebook でカスタム分析を行うために、データフレーム を取得します。データを分析したら、新しい分析 run を作成して結果をログすることで、分析結果を Sync できます。例:
wandb.init(job_type="analysis") - 既存の Runs を更新する: W&B run に関連付けられてログされたデータを更新できます。たとえば、一連の Runs の設定を更新して、アーキテクチャや、元はログされていなかったハイパーパラメーターなどの追加情報を含めることができます。
run データをエクスポート
完了済みまたは実行中の run からデータをダウンロードします。一般的な用途としては、Jupyter Notebook で独自の分析を行うためにデータフレームをダウンロードしたり、自動化された環境で独自のロジックを使用したりすることが挙げられます。
過去の run のデータを変更または更新することもできます。デフォルトでは、api object の単一インスタンスがすべてのネットワーク request をキャッシュします。実行中のスクリプトでリアルタイムの情報が必要な場合は、
api.flush() を呼び出して更新された値を取得してください。
複数の 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 です。
エラー処理
W&B サーバーとの通信中にエラーが発生すると、wandb.CommError が送出されます。元の例外は exc 属性から確認できます。
アクティブな 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の例
run のメトリクスを読み取る
この例では、"<entity>/<project>/<run_id>" に保存された run から、run.log({"accuracy": acc}) で保存したタイムスタンプと accuracy を出力します。
run から特定のメトリクスを読み取る
run から特定のメトリクスを取得するには、keys 引数を使用します。run.history() を使用する場合のデフォルトのサンプル数は 500 です。特定のメトリクスを含まないログ済みの step は、出力データフレームでは NaN として表示されます。keys 引数を指定すると、API は一覧にあるメトリクス key を含む step をより高い頻度でサンプリングします。
2 つの run を比較する
これにより、run1 と run2 で異なる設定パラメーターが出力されます。
完了した run のメトリクスを更新する
この例では、以前の run のaccuracyを0.9 に設定します。
完了したrun内のメトリクス名を変更する
この例では、表内のsummary列の名前を変更します。列名の変更が適用されるのは表のみです。チャートでは引き続き、メトリクスは元の名前で参照されます。
既存のrunの設定を更新する
この例では、設定項目の 1 つを更新します。システムリソースの使用量をCSVファイルにエクスポートする
以下のスニペットでは、システムリソースの使用量を検索し、その結果をCSVに保存します。サンプリングされていないメトリクスデータを取得する
history からデータを取得する場合、デフォルトでは 500 ポイントにサンプリングされます。run.scan_history() を使用すると、ログされたすべてのデータポイントを取得できます。以下は、history にログされた loss の全データポイントをダウンロードする例です。
history からページ単位でデータを取得する
run の完全な未サンプリングの履歴を取得するには、run.scan_history() を使用します。未サンプリングの履歴には、その run のすべての履歴レコードが含まれます。これに対して、run.history() のサンプリングされたビューでは、個々のレコードが省略される場合があります。
page_size パラメーターは、API リクエストごとに取得する履歴レコードの最大数を制御し、デフォルトは 1000 です。リクエストが遅い場合やタイムアウトする場合は、より小さいページサイズを試してください。ページを小さくするとタイムアウトのリスクを減らせますが、必要な API リクエスト数は増えます。
keys パラメーターでは、返されるメトリクスを個別にフィルターできます。
プロジェクト内のすべての Runs のメトリクスを CSV ファイルにエクスポートする
このスクリプトはプロジェクト内の Runs を取得し、それらの名、設定、summary の統計を含む Runs のデータフレームと CSV を生成します。<entity> と <project> は、それぞれ W&B の entity とプロジェクトの名に置き換えてください。
run の開始時刻を取得する
このコード例では、run が作成された時刻を取得します。完了済みの run にファイルをアップロードする
以下のコードスニペットは、選択したファイルを完了済みの run にアップロードします。run からファイルをダウンロードする
これは、cifar プロジェクトの run ID uxte44z7 に紐づくファイル “model-best.h5” を検索し、ローカルに保存します。run からすべてのファイルをダウンロードする
これにより、run に関連付けられたすべてのファイルを見つけてローカルに保存します。特定の sweep から run を取得する
このスニペットでは、特定の sweep に関連するすべての run をダウンロードします。sweep から最適な run を取得する
以下のスニペットは、指定した sweep から最適な run を取得します。best_run は、sweep 設定の metric パラメーターで指定されたメトリクスが最も優れている run です。
sweep から最良のモデルファイルをダウンロードする
このスニペットでは、モデルファイルをmodel.h5 として保存した Runs を含む sweep から、検証精度が最も高いモデルファイルをダウンロードします。