from clearml.automation import UniformParameterRange, UniformIntegerParameterRange, DiscreteParameterRange from clearml.automation import HyperParameterOptimizer from clearml.automation.optuna import OptimizerOptuna from clearml import Task task = Task.init( project_name='SpoterEmbedding', task_name='Automatic Hyper-Parameter Optimization', task_type=Task.TaskTypes.optimizer, reuse_last_task_id=False ) optimizer = HyperParameterOptimizer( # specifying the task to be optimized, task must be in system already so it can be cloned base_task_id="4504e0b3ec6745249d3d4c94d3d40652", # setting the hyperparameters to optimize hyper_parameters=[ # epochs UniformIntegerParameterRange('Args/epochs', 200, 800), # learning rate UniformParameterRange('Args/lr', 0.000001, 0.1), # optimizer DiscreteParameterRange('Args/optimizer', ['ADAM', 'SGD']), # vector length UniformIntegerParameterRange('Args/vector_length', 10, 100), ], # setting the objective metric we want to maximize/minimize objective_metric_title='silhouette_coefficient', objective_metric_series='val', objective_metric_sign='max', # setting optimizer optimizer_class=OptimizerOptuna, # configuring optimization parameters execution_queue='default', optimization_time_limit=360, compute_time_limit=480, total_max_jobs=20, min_iteration_per_job=0, max_iteration_per_job=150000, ) task.execute_remotely(queue_name='default', exit_process=True)