この機能には python>=3.8 が必要です
MLFlow からデータをインポート
W&B は、MLFlow からのデータのインポートをサポートしており、実験、runs、アーティファクト、メトリクス、その他のメタデータを含みます。 依存関係をインストール:importer.collect_runs() は MLFlow サーバーからすべての run を収集します。特定のサブセットをアップロードしたい場合は、自分で runs イテラブルを構築し、それをインポーターに渡すことができます。
Databricks MLFlow からインポートする場合、最初にDatabricks CLI を設定することが必要です。前のステップで
mlflow-tracking-uri="databricks" を設定します。artifacts=False を渡します:
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キーをコピーし、パスワードマネージャーのような安全な場所に保存してください。
- 右上のユーザープロフィールアイコンをクリックします。
- ユーザー設定 を選択し、APIキー セクションまでスクロールします。
- 表示 をクリックします。表示されるAPIキーをコピーします。APIキーを非表示にするには、ページを再読み込みします。
run パスを見つける
パブリックAPIを使用するには、しばしば<entity>/<project>/<run_id> という形式の run パスが必要になります。アプリUIでrunページを開き、Overviewタブをクリックしてrunパスを取得します。
run データをエクスポートする
完了済みまたはアクティブな run からデータをダウンロードします。一般的な用途には、カスタム分析のために Jupyter ノートブックにデータフレームをダウンロードしたり、カスタムロジックを使用して自動化された環境で利用したりすることが含まれます。
過去の runs データも変更したり更新したりすることができます。デフォルトでは、APIオブジェクトのインスタンス1つにつき、すべてのネットワークリクエストがキャッシュされます。実行中のスクリプトでリアルタイム情報が必要な場合、
api.flush() を呼び出して更新された値を取得してください。
属性の理解
以下のrunに対して:run.config
run.history()
run.summary
サンプリング
デフォルトの history メソッドは、メトリクスを固定されたサンプル数(デフォルトは500)にサンプリングします。大規模なrunのすべてのデータをエクスポートしたい場合は、run.scan_history() メソッドを使用してください。詳細はAPIリファレンスを参照してください。
複数の runs のクエリ
- データフレームとCSV
- MongoDB スタイル
このサンプルスクリプトはプロジェクトを検索し、CSVにrun の名前、設定、サマリーステータスを出力します。
<entity> と <project> をそれぞれあなたのW&Bエンティティとプロジェクト名に置き換えてください。api.runs を呼び出すと、反復可能でリストのように動作する Runs オブジェクトが返されます。デフォルトでは、オブジェクトは要求に応じて1回に50のrunを順番にロードしますが、per_page キーワード引数を使用してページごとにロードする数を変更できます。
api.runs はorderキーワード引数も受け取ります。デフォルトの順序は -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 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 を比較する
これはrun1 と run2 の間で異なる設定パラメーターを出力します。
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にモデルファイルを保存したスイープから、最高の検証精度を持つモデルファイルをダウンロードします。