クエリパネルを使用してデータをクエリし、インタラクティブに視覚化します。
クエリパネルを作成する
ワークスペースまたはレポート内にクエリを追加します。
- プロジェクトのワークスペースに移動します。
- 右上のコーナーにある
Add panelをクリックします。 - ドロップダウンから
Query panelを選択します。
/Query panel と入力して選択します。
または、一連の Runs とクエリを関連付けることができます。
- レポート内で、
/Panel gridと入力して選択します。 Add panelボタンをクリックします。- ドロップダウンから
Query panelを選択します。
クエリコンポーネント
式
クエリ式を使用して、W&Bに保存されたデータ、例えば Runs、Artifacts、Models、Tables などをクエリします。
例: テーブルをクエリする
W&B Tableをクエリしたいとします。トレーニングコード内で "cifar10_sample_table" という名前のテーブルをログします:
import wandb
wandb.log({"cifar10_sample_table":<MY_TABLE>})
クエリパネル内でテーブルをクエリするには次のようにします:
runs.summary["cifar10_sample_table"]
これを分解すると:
runsは、ワークスペースに Query Panel があるときに自動的に Query Panel Expressions に注入される変数です。その値は、その特定のワークスペースに表示される Runs のリストです。Run内の利用可能な異なる属性についてはこちらをお読みください。summaryは、Run の Summary オブジェクトを返す操作です。Opsは マップされる ため、この操作はリスト内の各 Run に適用され、その結果として Summary オブジェクトのリストが生成されます。["cifar10_sample_table"]は Pick 操作(角括弧で示され)、predictionsというパラメータを持ちます。Summary オブジェクトは辞書またはマップのように動作するため、この操作は各 Summary オブジェクトからpredictionsフィールドを選択します。
インタラクティブに独自のクエリの書き方を学ぶには、こちらのレポートを参照してください。
設定
パネルの左上コーナーにあるギアアイコンを選択してクエリ設定を展開します。これにより、ユーザーはパネルのタイプと結果パネルのパラメータを設定できます。
結果パネル
最後に、クエリ結果パネルは、選択したクエリパネル、設定によって設定された構成に基づいて、データをインタラクティブに表示する形式でクエリ式の結果をレンダリングします。次の画像は、同じデータのテーブルとプロットを示しています。
基本操作
次に、クエリパネル内で行える一般的な操作を示します。
ソート
列オプションからソートします:

フィルター
クエリ内で直接、または左上隅のフィルターボタンを使用してフィルターできます(2枚目の画像)。

マップ
マップ操作はリストを反復し、データ内の各要素に関数を適用します。これは、パネルクエリを使用して直接行うことも、列オプションから新しい列を挿入することによって行うこともできます。

グループ化
クエリを使用してまたは列オプションからグループ化できます。

連結
連結操作により、2つのテーブルを連結し、パネル設定から連結または結合できます。

結合
クエリ内でテーブルを直接結合することも可能です。次のクエリ式を考えてみてください:
project("luis_team_test", "weave_example_queries").runs.summary["short_table_0"].table.rows.concat.join(\
project("luis_team_test", "weave_example_queries").runs.summary["short_table_1"].table.rows.concat,\
(row) => row["Label"],(row) => row["Label"], "Table1", "Table2",\
"false", "false")
左のテーブルは次のように生成されます:
project("luis_team_test", "weave_example_queries").\
runs.summary["short_table_0"].table.rows.concat.join
右のテーブルは次のように生成されます:
project("luis_team_test", "weave_example_queries").\
runs.summary["short_table_1"].table.rows.concat
ここで:
(row) => row["Label"]は各テーブルのセレクタであり、結合する列を決定します"Table1"と"Table2"は、結合された各テーブルの名前ですtrueとfalseは、左および右の内/外部結合設定です
Runsオブジェクト
クエリパネルを使用して runs オブジェクトにアクセスします。Runオブジェクトは、実験の記録を保存します。詳細については、こちらのレポートのセクションを参照してくださいが、簡単な概要として、runs オブジェクトには以下が含まれます:
summary: Runの結果を要約する情報の辞書です。精度や損失のようなスカラーや、大きなファイルを含むことができます。デフォルトでは、wandb.log()は記録された時系列の最終的な値をsummaryに設定します。直接summaryの内容を設定することもできます。summaryはRunの出力と考えてください。history: モデルがトレーニング中に変化する値を格納するための辞書のリストです。コマンドwandb.log()はこのオブジェクトに追加します。config: Runの設定情報を含む辞書で、トレーニングランのハイパーパラメーターやデータセットアーティファクトを作成するランの前処理方法などが含まれます。これらはRunの「入力」として考えてください。
Artifactsにアクセスする
Artifacts は W&B の中核概念です。これは、バージョン管理された名前付きファイルやディレクトリーのコレクションです。Artifacts を使用して、モデルの重み、データセット、およびその他のファイルやディレクトリーを追跡します。Artifacts は W&B に保存され、他の runs でダウンロードまたは使用できます。詳細と例は、こちらのセクションのレポートで確認できます。Artifacts は通常、project オブジェクトからアクセスします:
project.artifactVersion(): プロジェクト内の特定の名前とバージョンのアーティファクトバージョンを返しますproject.artifact(""): プロジェクト内の特定の名前のアーティファクトを返します。その後、.versionsを使用してこのアーティファクトのすべてのバージョンのリストを取得できますproject.artifactType(): プロジェクト内の特定の名前のartifactTypeを返します。その後、.artifactsを使用して、このタイプを持つすべてのアーティファクトのリストを取得できますproject.artifactTypes: プロジェクト内のすべてのアーティファクトタイプのリストを返します

