Skip to main content
You can use W&B Sweeps with custom CLI commands if training configuration passes command-line arguments. In the example below, the code snippet illustrates a bash terminal where a user trains a Python script named train.py, providing values that the script parses:
/usr/bin/env python train.py -b \
    your-training-config \
    --batchsize 8 \
    --lr 0.00001
To implement custom commands, modify the command key in the YAML file. Based on the previous example, the configuration appears as follows:
program:
  train.py
method: grid
parameters:
  batch_size:
    value: 8
  lr:
    value: 0.0001
command:
  - ${env}
  - python
  - ${program}
  - "-b"
  - your-training-config
  - ${args}
The ${args} key expands to all parameters in the sweep configuration, formatted for argparse as --param1 value1 --param2 value2. For additional arguments outside of argparse, implement the following:
parser = argparse.ArgumentParser()
args, unknown = parser.parse_known_args()
Depending on the environment, python might refer to Python 2. To ensure invocation of Python 3, use python3 in the command configuration:
program:
  script.py
command:
  - ${env}
  - python3
  - ${program}
  - ${args}
I