Custom Python integration

Any Python script can become a HyperOptimizer workload if it accepts --hpo-* arguments, runs one trial, and prints metrics.

Minimal Python shape

import argparse
import json

def parse_args():
    parser = argparse.ArgumentParser()
    parser.add_argument("--hpo-learning-rate", type=float, required=True)
    parser.add_argument("--hpo-batch-size", type=int, required=True)
    return parser.parse_args()

def main():
    args = parse_args()
    result = train_model(
        learning_rate=args.hpo_learning_rate,
        batch_size=args.hpo_batch_size,
    )

    print(f"hpo.metrics.loss={json.dumps(result.loss)}")
    print(f"hpo.metrics.accuracy={json.dumps(result.accuracy)}")

if __name__ == "__main__":
    main()

Package it

FROM python:3.12-slim

WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .

CMD ["python", "train.py"]

Next steps

Was this page helpful?