Skip to main content

实验环境容器

本教程演示如何使用clearml-agentbuild命令来构建一个Docker容器,该容器复制现有任务的执行环境。ClearML代理可以利用此类容器来执行任务,而无需每次都设置其环境。

一个使用场景是手动超参数优化,其中可以使用基础任务来创建一个容器,以便在运行优化任务时使用。

先决条件

  • clearml-agent 已安装并配置
  • clearml 已安装并配置
  • clearml 仓库已克隆 (git clone https://github.com/allegroai/clearml.git)

创建ClearML实验

  1. 设置实验的执行环境:

    cd clearml/examples/frameworks/keras
    pip install -r requirements.txt
  2. 运行实验:

    python keras_tensorboard.py

    这将在"examples"项目中创建一个名为"Keras with TensorBoard example"的ClearML任务。

    注意在运行上述脚本时控制台输出中的任务ID:

    ClearML Task: created new task id=<TASK_ID>

    此ID将在以下部分中使用。

构建Docker容器

执行以下命令以构建容器。输入上面创建的任务的ID。

clearml-agent build --id <TASK_ID> --docker --target new_docker
tip

如果容器不使用GPU,请添加--cpu-only标志。

这将在--target文件夹中创建一个包含指定任务执行环境的容器。 当Docker构建完成时,控制台输出显示:

Docker build done
Committing docker container to: new_docker
sha256:460453b93ct1989fd1c6637c236e544031c4d378581433fc0b961103ce206af1

使用新的Docker容器

利用你刚刚构建的容器,让ClearML代理使用它来执行一个新的实验:

  1. ClearML Web UI中,转到“examples”项目,“Keras with TensorBoard example”任务(即上面执行的那个任务)。

  2. Clone 实验。

  3. 在克隆的实验中,转到EXECUTION标签>CONTAINER部分。在IMAGE下,插入新Docker镜像的名称,new_docker。有关更多任务修改选项,请参见调优实验

  4. 将克隆的实验加入default队列。

  5. Docker模式中启动一个clearml-agent并将其分配到default队列:

    clearml-agent daemon --docker --queue default
    tip

    如果代理不使用GPU,请添加--cpu-only标志。

    此代理将拉取排队的任务并使用new_docker镜像创建执行环境来运行它。 在任务的控制台标签中,最初的日志之一显示如下:

    Executing: ['docker', 'run', ..., 'CLEARML_DOCKER_IMAGE=new_docker', ...].