from clearml.automation import (
HyperParameterOptimizer,
UniformParameterRange,
DiscreteParameterValues,
GridSearch,
)
optimizer = HyperParameterOptimizer(
base_task_id="<task-id-to-optimize>",
hyper_parameters:[
UniformParameterRange("General/learning_rate", min_value=1e-5, max_value=1e-2, step_size=1e-5),
DiscreteParameterValues("General/batch_size", values=[16, 32, 64, 128]),
DiscreteParameterValues("General/optimizer", values=["adam", "sgd", "adamw"]),
],
objective_metric_title="Accuracy",
objective_metric_series="validation",
objective_metric_sign="max", # 最大化验证准确率
max_number_of_concurrent_tasks=4,
optimizer_class=GridSearch,
execution_queue="gpu-queue",
total_max_jobs=50,
)
optimizer.start()
top_exps = optimizer.get_top_experiments(top_k=3)
print("最佳实验:", top_exps)