Optuna
Optuna 是一个 超参数优化 框架, 它使用了不同的采样器,如网格搜索、随机、贝叶斯和进化算法。你可以将 Optuna 集成到 ClearML 的自动化超参数优化中。
HyperParameterOptimizer 类包含了 ClearML 的超参数优化模块。其模块化设计使得可以使用不同的优化器,包括现有的软件框架,如 Optuna,从而实现简单、准确和快速的超参数优化。Optuna (automation.optuna.OptimizerOptuna
) 优化器通过依赖早期停止(剪枝)和智能资源分配,使您能够高效地同时优化多个超参数。
要在ClearML的超参数优化中使用Optuna,您必须首先安装它。当您实例化HyperParameterOptimizer
时,将OptimizerOptuna
作为optimizer_class
参数传递:
from clearml.automation import (
DiscreteParameterRange, HyperParameterOptimizer, UniformIntegerParameterRange
)
from clearml.automation.optuna import OptimizerOptuna
an_optimizer = HyperParameterOptimizer(
# This is the experiment we want to optimize
base_task_id=args['template_task_id'],
hyper_parameters=[
UniformIntegerParameterRange('layer_1', min_value=128, max_value=512, step_size=128),
DiscreteParameterRange('batch_size', values=[96, 128, 160]),
DiscreteParameterRange('epochs', values=[30]),
],
objective_metric_title='validation',
objective_metric_series='accuracy',
objective_metric_sign='max',
max_number_of_concurrent_tasks=2,
optimizer_class=OptimizerOptuna, # input optuna as search strategy
execution_queue='1xGPU',
total_max_jobs=10,
)
请参阅超参数优化教程。