コマンドラインから sweep を初期化し、sweep agent を起動する場合は、YAML ファイルで sweep 設定を定義してください。Python スクリプトまたはノートブック 内ですべて完結させて sweep を初期化し、開始する場合は、Python の辞書 で sweep を定義してください。
基本構造
name キー) 、検索対象のパラメーター (parameters キー) 、パラメーター空間の探索手法 (method キー) などです。
たとえば、次のコードスニペットは、YAML ファイル内と Python の辞書内で定義した同じ sweep 設定を示しています。sweep 設定では、program、name、method、metric、parameters の 5 つのトップレベルキーを指定しています。
- CLI
- Python スクリプトまたはノートブック
コマンドライン (CLI) から Sweeps をインタラクティブに管理する場合は、YAML ファイルで sweep 設定を定義します
config.yaml
parameters キーの中には、learning_rate、batch_size、epoch、optimizer の各キーがネストされています。指定した各ネストキーには、1 つ以上の値、分布、確率などを指定できます。詳細は、Sweep configuration options の parameters セクションを参照してください。
二重にネストしたパラメーター
parameters キーを追加します。
次の例は、nested_category_1、nested_category_2、nested_category_3 という 3 つのネストされたパラメーターを含む sweep 設定を示しています。各ネストされたパラメーターには、さらに momentum と weight_decay という 2 つのパラメーターが含まれています。
nested_category_1、nested_category_2、nested_category_3 はプレースホルダーです。実際のユースケースに合わせた名前に置き換えてください。- CLI
- Python script or notebook
sweep 設定テンプレート
hyperparameter_name はハイパーパラメーター名に、<> で囲まれた値は適切な値に置き換えてください。
config.yaml
!!float 演算子を追加して、その値を浮動小数点数にキャストします。たとえば、min: !!float 1e-5 です。コマンドの例を参照してください。
sweep 設定例
- CLI
- Python スクリプトまたはノートブック
config.yaml
Bayes hyperbandの例
early_terminate の反復回数の最小値または最大値を指定する方法を示します。
- 最大反復回数
- 最小反復回数
この例でのブラケットは
[3, 3*eta, 3*eta*eta, 3*eta*eta*eta] で、[3, 9, 27, 81] になります。マクロとカスタムコマンド引数の例
sweep.yaml) では、Python スクリプト (run.py) を実行するコマンドを定義しており、sweep の実行時に ${env}、${interpreter}、${program} の各マクロが適切な値に置き換えられます。
--batch_size=${batch_size}、--test=True、--optimizer=${optimizer} の各引数ではカスタムマクロを使用して、sweep 設定で定義された batch_size、test、optimizer の各パラメーターの値を渡します。
sweep.yaml
run.py) では、argparse モジュールを使って、これらのコマンドライン引数を解析できます。
run.py
ブール引数
argparse モジュールは、デフォルトではブール引数をサポートしていません。ブール引数を定義するには、action パラメーターを使用するか、ブール値の文字列表現をブール型に変換するカスタム関数を使用します。
たとえば、次のコードスニペットを使用してブール引数を定義できます。ArgumentParser の引数として store_true または store_false を渡します。
str2bool関数を定義しています。