3.3 KiB
title |
---|
Experiment Environment Containers |
This tutorial demonstrates using clearml-agent
's build
command to build a Docker container replicating the execution environment of an existing task. ClearML Agents can make
use of such containers to execute tasks without having to set up their environment every time.
A use case for this would be manual hyperparameter optimization, where a base task can be used to create a container to be used when running optimization tasks.
Prerequisites
clearml-agent
installed and configuredclearml
installed and configured- clearml repo cloned (
git clone https://github.com/allegroai/clearml.git
)
Creating the ClearML Experiment
-
Set up the experiment's execution environment:
cd clearml/examples/frameworks/keras pip install -r requirements.txt
-
Run the experiment:
python keras_tensorboard.py
This creates a ClearML task called "Keras with TensorBoard example" in the "examples" project.
Note the task ID in the console output when running the script above:
ClearML Task: created new task id=<TASK_ID>
This ID will be used in the following section.
Building the Docker Container
Execute the following command to build the container. Input the ID of the task created above.
clearml-agent build --id <TASK_ID> --docker --target new_docker
:::tip
If the container will not make use of a GPU, add the --cpu-only
flag.
:::
This will create a container with the specified task's execution environment in the --target
folder.
When the Docker build completes, the console output shows:
Docker build done
Committing docker container to: new_docker
sha256:460453b93ct1989fd1c6637c236e544031c4d378581433fc0b961103ce206af1
Using the New Docker Container
Make use of the container you've just built by having a ClearML agent make use of it for executing a new experiment:
-
In the ClearML Web UI, go to the "examples" project, "Keras with TensorBoard example" task (the one executed above).
-
Clone the experiment.
-
In the cloned experiment, go to the EXECUTION tab > CONTAINER section. Under IMAGE, insert the name of the new Docker image,
new_docker
. See Tuning Experiments for more task modification options. -
Enqueue the cloned experiment to the
default
queue. -
Launch a
clearml-agent
in Docker Mode and assign it to thedefault
queue:clearml-agent daemon --docker --queue default
:::tip If the agent will not make use of a GPU, add the
--cpu-only
flag. :::This agent will pull the enqueued task and run it using the
new_docker
image to create the execution environment. In the task's CONSOLE tab, one of the first logs displays the following:Executing: ['docker', 'run', ..., 'CLEARML_DOCKER_IMAGE=new_docker', ...].