Hydra は、研究やその他の複雑な アプリケーション の開発を簡素化するオープンソースの Python フレームワーク です。主な特徴は、構成(composition)によって階層的な 設定 を動的に作成し、設定 ファイルや コマンドライン を通じてそれを上書きできる機能です。W&B の強力な機能を活用しながら、引き続き Hydra を 設定 管理に使用できます。
メトリクスのトラッキング
通常通りwandb.init() と wandb.Run.log() を使用して メトリクス をトラッキングします。ここでは、wandb.entity と wandb.project は Hydra の 設定 ファイル内で定義されています。
ハイパーパラメーターのトラッキング
Hydra は、設定 辞書 とのインターフェースのデフォルトの方法として omegaconf を使用します。OmegaConf の 辞書 はプリミティブな 辞書 のサブクラスではないため、Hydra の Config を直接 wandb.Run.config に渡すと、ダッシュボード 上で予期しない 結果 になることがあります。wandb.Run.config に渡す前に、omegaconf.DictConfig をプリミティブな dict 型に変換する必要があります。
マルチプロセッシングのトラブルシューティング
プロセス 開始時にフリーズする場合、こちらの既知の問題 が原因である可能性があります。これを解決するには、wandb.init() に追加の settings パラメータ を渡して W&B のマルチプロセッシングプロトコルを変更してみてください。
ハイパーパラメーターの最適化
W&B Sweeps は、高度な拡張性を備えた ハイパーパラメーター 探索 プラットフォーム です。最小限の コード 変更で W&B Experiments に関する興味深い洞察と 可視化 を提供します。Sweeps は Hydra プロジェクト とシームレスに統合され、追加のコーディングは不要です。必要なのは、通常通り スイープ するさまざまな パラメータ を記述した 設定 ファイルだけです。 簡単なsweep.yaml ファイルの例は以下の通りです。
wandb agent コマンド を返します。
Hydra のデフォルトに存在しないパラメータを渡す
Hydra は、コマンド の前に+ を付けることで、デフォルトの 設定 ファイルに存在しない追加の パラメータ を コマンドライン から渡すことをサポートしています。例えば、以下のように呼び出すだけで、特定の値を持つ追加の パラメータ を渡すことができます。
+ 設定に対して Sweeps を実行することはできません。これを回避するには、実験 パラメータ をデフォルトの空のファイルで初期化し、各呼び出し時に W&B Sweep を使用してそれらの空の 設定 を上書きします。詳細については、こちらの W&B レポート をご覧ください。