Skip to main content
Vous pouvez utiliser W&B Sweeps avec des commandes CLI personnalisées si la configuration d’entraînement transmet des arguments de ligne de commande. Cela vous permet d’exécuter des sweeps avec des scripts d’entraînement existants qui attendent déjà des options CLI spécifiques, sans modifier la façon dont le script traite ses arguments. L’exemple suivant montre un terminal Bash qui exécute un script Python nommé train.py pour l’entraînement et lui transmet des valeurs que le script analyse :
/usr/bin/env python train.py -b \
    your-training-config \
    --batchsize 8 \
    --lr 0.00001
Pour reproduire cet appel dans le cadre d’un sweep, modifiez la clé command dans le fichier YAML de configuration du sweep afin que l’agent de sweep génère la même ligne de commande. À partir de l’exemple précédent, la configuration se présente comme suit :
program:
  train.py
method: grid
parameters:
  batch_size:
    value: 8
  lr:
    value: 0.0001
command:
  - ${env}
  - python
  - ${program}
  - "-b"
  - your-training-config
  - ${args}
La clé ${args} se développe en l’ensemble des paramètres de la configuration du sweep, au format argparse sous la forme --param1 value1 --param2 value2. Si votre script accepte des arguments supplémentaires en dehors de argparse, utilisez parse_known_args pour que les options non reconnues ne fassent pas échouer l’analyseur :
parser = argparse.ArgumentParser()
args, unknown = parser.parse_known_args()
Selon l’environnement, python peut désigner Python 2. Pour lancer Python 3, utilisez python3 dans la configuration de la commande :
program:
  script.py
command:
  - ${env}
  - python3
  - ${program}
  - ${args}

Sweeps