clearml-docs/docs/guides/automation/manual_random_param_search_example.md

34 lines
2.3 KiB
Markdown
Raw Normal View History

2021-05-13 23:48:51 +00:00
---
title: Manual Random Parameter Search
---
The [manual_random_param_search_example.py](https://github.com/allegroai/clearml/blob/master/examples/automation/manual_random_param_search_example.py)
script demonstrates a random parameter search by automating the execution of an experiment multiple times, each time with
a different set of random hyperparameters.
This example accomplishes the automated random parameter search by doing the following:
1. Creating a template Task named `Keras HP optimization base`. To create it, run the [base_template_keras_simple.py](https://github.com/allegroai/clearml/blob/master/examples/optimization/hyper-parameter-optimization/base_template_keras_simple.py)
script. This experiment must be executed first, so it will be stored in the server, and then it can be accessed, cloned,
and modified by another Task.
2023-09-11 10:33:30 +00:00
1. Creating a parameter dictionary, which is connected to the Task by calling [`Task.connect()`](../../references/sdk/task.md#connect)
2022-03-13 13:07:06 +00:00
so that the parameters are logged by ClearML.
2021-05-13 23:48:51 +00:00
1. Adding the random search hyperparameters and parameters defining the search (e.g., the experiment name, and number of
times to run the experiment).
2023-09-11 10:33:30 +00:00
1. Creating a Task object referencing the template experiment, `Keras HP optimization base`. See [`Task.get_task`](../../references/sdk/task.md#taskget_task).
2021-05-13 23:48:51 +00:00
1. For each set of parameters:
2023-09-11 10:33:30 +00:00
1. Cloning the Task object. See [`Task.clone`](../../references/sdk/task.md#taskclone).
1. Getting the newly cloned Task's parameters. See [`Task.get_parameters`](../../references/sdk/task.md#get_parameters).
1. Setting the newly cloned Task's parameters to the search values in the parameter dictionary (Step 1). See [`Task.set_parameters`](../../references/sdk/task.md#set_parameters).
1. Enqueuing the newly cloned Task to execute. See [`Task.enqueue`](../../references/sdk/task.md#taskenqueue).
2021-05-13 23:48:51 +00:00
2023-09-04 12:40:42 +00:00
When the example script runs, it creates an experiment named `Random Hyper-Parameter Search Example` in
the `examples` project. This starts the parameter search, and creates the experiments:
2021-05-13 23:48:51 +00:00
* `Keras HP optimization base 0`
* `Keras HP optimization base 1`
* `Keras HP optimization base 2`.
2022-03-09 10:17:11 +00:00
When these experiments are completed, their [results can be compared](../../webapp/webapp_exp_comparing.md).
![Comparison parallel coordinates](../../img/examples_hpo_parallel_coordinates.png)