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]
    
CLI ベースのエージェント (wandb agent) は、各 run をそれぞれ独立したメモリ割り当てを持つ別個のプロセスとして実行するため、CUDA メモリが run 間で蓄積するのを防げます。Python SDK (wandb.agent) では、このプロセス分離は提供されません。 詳細は, Sweeps のトラブルシューティングを参照してください。
Sweeps run の異常終了