← all repositories
williamFalcon/test-tube

Argparse with a PhD in hyperparameter tuning

A Python library that extends argparse to log experiments and parallelize hyperparameter search across GPUs or SLURM clusters without rewriting your training scripts.

735 stars JavaScript LLMOps · EvalML Frameworks
test-tube
Velocity · 7d
+0.2
★ / day
Trend
steady
star history

What it does

Test-tube subclasses Python’s argparse to add experiment logging and hyperparameter optimization. You swap ArgumentParser for HyperOptArgumentParser, mark which flags are tunable, and it handles grid or random search across multiple GPUs, CPUs, or a SLURM cluster. It also wraps experiment tracking with TensorBoard visualization built in.

The interesting bit

The library is essentially a thin, clever layer over familiar tools: argparse for parsing, PyTorch’s SummaryWriter for logging, and SLURM for cluster dispatch. The pitch is that you change one import and one line to make your existing CLI training script searchable and parallelizable. The log-scale search option (log_base=10) is a nice touch for learning-rate-style parameters where magnitude matters more than absolute value.

Key highlights

  • Drop-in argparse replacement: HyperOptArgumentParser(strategy='random_search') or grid_search
  • Parallel optimization across local GPUs (optimize_parallel_gpu) or CPUs (optimize_parallel_cpu)
  • SLURM cluster integration with SlurmCluster for HPC-scale sweeps
  • Built-in TensorBoard logging via Experiment, a subclass of SummaryWriter
  • Log-scale hyperparameter ranges for better search over orders of magnitude
  • Framework-agnostic: works with PyTorch, TensorFlow, Keras, and others

Caveats

  • The README notes the project is “U.S. Patent Pending” — unusual for open-source tooling and worth noting if you’re sensitive to IP restrictions
  • Last substantial activity appears to be 2017; the ecosystem has moved toward Weights & Biases, MLflow, and Optuna since then

Verdict

Worth a look if you’re stuck on an older SLURM-based cluster and want minimal code changes. Skip it if you’re starting fresh — modern alternatives have richer UIs, better community support, and no patent ambiguity.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.