Skip to main content
sweep 中に Cuda out of memory が発生する場合は、プロセスベースの実行を使用するようにコードをリファクタリングしてください。コードを Python スクリプトとして書き直し、Python SDK ではなく CLI から sweep エージェントを呼び出します。
  1. トレーニング ロジックを Python スクリプト (たとえば train.py) に追加します。
    if __name__ == "__main__":
        train()
    
  2. YAML の sweep 設定でそのスクリプトを参照します。
    program: train.py
    method: bayes
    metric:
      name: validation_loss
      goal: maximize
    parameters:
      learning_rate:
        min: 0.0001
        max: 0.1
      optimizer:
        values: ["adam", "sgd"]
    
  3. CLI で sweep を初期化します。
    wandb sweep config.yaml
    
  4. CLI で sweep エージェントを起動します。sweep_ID は前の手順で返された ID に置き換えてください。
    wandb agent sweep_ID
    
Python SDK (wandb.agent) ではなく CLI ベースのエージェント (wandb agent) を使用すると、各 run がそれぞれ独立したメモリ割り当てを持つ別個のプロセスとして実行されるため、CUDA メモリが run 間で蓄積するのを防げます。 詳細は, Sweeps のトラブルシューティングを参照してください。
Sweeps run の異常終了