实验环境容器
本教程演示如何使用clearml-agent
的build
命令来构建一个Docker容器,该容器复制现有任务的执行环境。ClearML代理可以利用此类容器来执行任务,而无需每次都设置其环境。
一个使用场景是手动超参数优化,其中可以使用基础任务来创建一个容器,以便在运行优化任务时使用。
先决条件
clearml-agent
已安装并配置clearml
已安装并配置- clearml 仓库已克隆 (
git clone https://github.com/allegroai/clearml.git
)
创建ClearML实验
-
设置实验的执行环境:
cd clearml/examples/frameworks/keras
pip install -r requirements.txt -
运行实验:
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代理使用它来执行一个新的实验:
-
在ClearML Web UI中,转到“examples”项目,“Keras with TensorBoard example”任务(即上面执行的那个任务)。
-
Clone 实验。
-
在克隆的实验中,转到EXECUTION标签>CONTAINER部分。在IMAGE下,插入新Docker镜像的名称,
new_docker
。有关更多任务修改选项,请参见调优实验。 -
将克隆的实验加入
default
队列。 -
在Docker模式中启动一个
clearml-agent
并将其分配到default
队列:clearml-agent daemon --docker --queue default
tip如果代理不使用GPU,请添加
--cpu-only
标志。此代理将拉取排队的任务并使用
new_docker
镜像创建执行环境来运行它。 在任务的控制台标签中,最初的日志之一显示如下:Executing: ['docker', 'run', ..., 'CLEARML_DOCKER_IMAGE=new_docker', ...].