图像超参数优化 - Jupyter 笔记本
hyperparameter_search.ipynb 展示了如何使用ClearML的HyperParameterOptimizer 类来执行自动化的超参数优化(HPO)。
代码创建了一个HyperParameterOptimizer对象,这是一个搜索控制器。搜索控制器使用 Optuna 搜索策略优化器。 该示例通过找到最佳的epoch数量、批量大小、基础学习率和dropout来最大化总准确率。ClearML 自动记录优化的最佳实验。
超参数优化的实验名为image_classification_CIFAR10
。它是通过运行另一个ClearML示例创建的,image_classification_CIFAR10.ipynb,该示例必须在hyperparameter_search.ipynb
之前运行。
优化器任务,Hyperparameter Optimization
,以及实验会单独出现在ClearML Web UI中。
优化器任务
超参数
HyperParameterOptimizer
的配置在对象实例化时提供,并显示在优化器任务的配置 > 超参数 > 常规部分。
optimizer = HyperParameterOptimizer(
base_task_id=TEMPLATE_TASK_ID, # This is the experiment we want to optimize
# here we define the hyperparameters to optimize
hyper_parameters=[
UniformIntegerParameterRange('number_of_epochs', min_value=2, max_value=12, step_size=2),
UniformIntegerParameterRange('batch_size', min_value=2, max_value=16, step_size=2),
UniformParameterRange('dropout', min_value=0, max_value=0.5, step_size=0.05),
UniformParameterRange('base_lr', min_value=0.00025, max_value=0.01, step_size=0.00025),
],
# setting the objective metric we want to maximize/minimize
objective_metric_title='accuracy',
objective_metric_series='total',
objective_metric_sign='max', # maximize or minimize the objective metric
# setting optimizer - clearml supports GridSearch, RandomSearch, OptimizerBOHB and OptimizerOptuna
optimizer_class=OptimizerOptuna,
# Configuring optimization parameters
execution_queue='dan_queue', # queue to schedule the experiments for execution
max_number_of_concurrent_tasks=2, # number of concurrent experiments
optimization_time_limit=60, # set the time limit for the optimization process
compute_time_limit=120, # set the compute time limit (sum of execution time on all machines)
total_max_jobs=20, # set the maximum number of experiments for the optimization.
# Converted to total number of iteration for OptimizerBOHB
min_iteration_per_job=15000, # minimum number of iterations per experiment, till early stopping
max_iteration_per_job=150000, # maximum number of iterations per experiment
)
控制台
所有控制台输出都显示在优化器任务的CONSOLE中。
标量
每次迭代的总准确率和剩余预算的标量指标,以及每次迭代的总准确率图出现在实验的SCALARS标签中。剩余预算表示在达到总迭代次数之前,所有作业剩余的迭代次数的百分比。
ClearML 自动报告由 HyperParameterOptimizer
生成的标量。
图表
优化任务自动记录和监控不同试验任务的配置和执行细节,并以表格和平行坐标格式提供优化结果的摘要。在任务的PLOTS中查看这些图表。
实验比较
ClearML 自动记录每个任务,即每个使用一组超参数执行的实验,分别记录。每个实验在 ClearML Web UI 中显示为单独的实验,其中任务名称为 image_classification_CIFAR10
并附加超参数。
例如:image_classification_CIFAR10: base_lr=0.0075 batch_size=12 dropout=0.05 number_of_epochs=6
。
使用WebApp的比较功能来比较实验的配置、结果、图表、调试样本等。