コマンドラインから sweep を初期化し、sweep エージェント を起動する場合は、YAML ファイルで sweep 設定を定義してください。Python スクリプトまたはノートブック 内ですべて完結させて sweep を初期化し、開始する場合は、Python の辞書 で sweep を定義してください。
基本構造
name、検索対象の parameters、検索 method などです。
たとえば、次のコードスニペットは、YAML ファイル内と Python の辞書内で定義した同じ sweep 設定を示しています。sweep 設定では、program、name、method、metric、parameters の 5 つのトップレベルキーを指定しています。
- CLI
- Python スクリプトまたはノートブック
コマンドラインから Sweeps をインタラクティブに管理するには、YAML ファイルで sweep 設定を定義します。
config.yaml
parameters キーの中には、learning_rate、batch_size、epochs、optimizer の各キーがネストされています。指定した各ネストキーには、1 つ以上の値、分布、確率などを指定できます。詳細は、Sweep configuration options の parameters セクションを参照してください。
二重にネストしたパラメーター
parameters キーを追加します。
次の例は、ネストされたパラメーター nested_category_1、nested_category_2、nested_category_3 を含む sweep 設定を示しています。各ネストされたパラメーターには、さらに momentum と weight_decay という 2 つのパラメーターが含まれています。次のコード例は、この設定を YAML ファイルと Python の辞書の両方で示しています。
- 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 はデフォルトではブール値の文字列を解釈しないため、トレーニングスクリプトで追加の処理が必要です。
argparse モジュールは、デフォルトではブール引数をサポートしていません。ブール引数を定義するには、action パラメーターを使用するか、ブール値の文字列表現をブール型に変換するカスタム関数を使用します。
たとえば、次のコードスニペットを使用してブール引数を定義できます。ArgumentParser の引数として store_true または store_false を渡します:
str2bool関数を定義しています: