クイックスタート
以下のクイックスタートでは、スイープの定義、初期化、実行の方法を示します。主に4つのステップがあります。
次のスイープ クイックスタートのコードをJupyterノートブックまたはPythonスクリプトにコピーして貼り付けてください。
# W&B Pythonライブラリをインポートし、W&Bにログインする
import wandb
wandb.login()
# 1: 目的関数/トレーニング関数を定義する
def objective(config):
score = config.x ** 3 + config.y
return score
def main():
wandb.init(project='my-first-sweep')
score = objective(wandb.config)
wandb.log({'score': score})
テキスト:
# 2: 探索空間の定義
sweep_configuration = {
'method': 'random',
'metric':
{
'goal': 'minimize',
'name': 'score'
},
'parameters':
{
'x': {'max': 0.1, 'min': 0.01},
'y': {'values': [1, 3, 7]},
}
}
# 3: スイープの開始
sweep_id = wandb.sweep(
sweep=sweep_configuration,
project='my-first-sweep'
)
wandb.agent(sweep_id, function=main, count=10)
以下のセクションでは、クイックスタートのコードサンプルの各ステップが分解され、説明されています。
トレーニングコードを設定する
wandb.config
からハイパーパラメーターの値を取り入れて、モデルをトレーニングし、メトリクスを返すトレーニング関数を定義します。
オプションで、W&B Runの出力が格納されるプロジェクトの名前を指定できます(プロジェクトパラメータはwandb.init
にあります)。プロジェクトが指定されていない場合、ランは"Uncategorized"プロジェクトに入ります。
W&BスイープとW&Bランは同じプロジェクトに配置する必要があります。そのため、W&Bを初期化する際に指定する名前は、W&Bスイープを初期化する際に指定するプロジェクト名と一致する必要があります。
# 1: 目的/トレーニング関数を定義する
def objective(config):
score = config.x ** 3 + config.y
return score
def main():
wandb.init(project='my-first-sweep')
score = objective(wandb.config)
wandb.log({'score': score})
スイープ構成で検索空間を定義する
辞書内で、スイープしたいハイパーパラメーターを指定します。設定オプションの詳細については、Define sweep configuration を参照してください。
以下の例は、ランダムサーチ('method':'random'
)を使用したスイープ構成を示しています。スイープは、設定にリストされているバッチサイズ、エポック、学習率の値の組をランダムに選択します。
スイープ全体で、W&Bはメトリックキー(metric
)で指定されたメトリックを最大化します。以下の例では、W&Bは検証精度('val_acc'
)を最大化('goal':'maximize'
)します。
# 2: 探索空間を定義する
sweep_configuration = {
'method': 'random',
'metric': {'goal': 'minimize', 'name': 'score'},
'parameters':
{
'x': {'max': 0.1, 'min': 0.01},
'y': {'values': [1, 3, 7]},
}
}
スイープの初期化
W&Bでは、スイープコントローラーを使用して、クラウド(標準)、ローカル(ローカル)で1台以上のマシン間でスイープを管理します。スイープコントローラーについての詳細は、ローカルでの検索と停止アルゴリズムを参照してください。
スイープを初期化すると、スイープ識別番号が返されます。
sweep_id = wandb.sweep(
sweep=sweep_configuration,
project='my-first-sweep'
)
スイープの初期化に関する詳細は、スイープの初期化を参照してください。
スイープの開始
wandb.agent
APIコールを使用して、W&Bスイープを開始します。
wandb.agent(sweep_id, function=main, count=10)
結果の可視化(オプション)
W&B Sweepダッシュボードで、プロジェクトを開き、ライブ結果を確認します。数回クリックするだけで、平行座標プロットやパラメータ重要度分析など、豊富なインタラクティブチャートを構築できます。詳細はこちらをご覧ください。
結果の可視化方法についての詳細は、スイープ結果の可視化を参照してください。ダッシュボードの例として、このサンプルのスイーププロジェクトをご覧ください。
エージェントの停止(オプション)
端末からCtrl+c
を押して、現在実行中のスイープエージェントのrunを停止します。エージェントを停止するには、runが停止した後に再度Ctrl+c
を押します。