Skip to main content
Si vous voyez Cuda out of memory lors d’un sweep, refactorisez votre code pour utiliser une exécution par processus. Réécrivez votre code sous forme de script Python et lancez l’agent de sweep depuis la CLI au lieu du SDK Python.
  1. Ajoutez votre logique d’entraînement à un script Python (par exemple, train.py) :
    if __name__ == "__main__":
        train()
    
  2. Indiquez le script dans votre configuration YAML de 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. Initialisez le sweep avec la CLI :
    wandb sweep config.yaml
    
  4. Démarrez l’agent de sweep avec la CLI, en remplaçant sweep_ID par l’ID renvoyé à l’étape précédente :
    wandb agent sweep_ID
    
L’utilisation de l’agent via la CLI (wandb agent) au lieu du SDK Python (wandb.agent) garantit que chaque run s’exécute dans un processus distinct avec sa propre allocation mémoire, ce qui évite l’accumulation de mémoire CUDA entre les runs. Pour plus d’informations, voir dépannage de Sweeps.
Sweeps Plantages de runs