Skip to main content

远程执行

execute_remotely_example 脚本展示了如何使用 Task.execute_remotely() 方法。

note

确保至少有一个ClearML Agent正在运行并分配到监听default队列:

clearml-agent daemon --queue default

执行流程

该脚本在PyTorch内置的MNIST数据集上训练一个简单的深度神经网络。以下描述了代码的执行流程:

  1. 训练运行一个周期。
  2. 代码使用了Task.execute_remotely(),这会终止代码的本地执行并将任务排入default队列,如queue_name参数中所指定的那样。
  3. 监听队列的代理获取任务并远程重新启动任务执行。当代理执行任务时,execute_remotely被视为无操作。

使用execute_remotely的执行流程在开发机器上运行代码进行几次迭代以调试并确保代码不会崩溃,或者设置环境时特别有用。之后,训练可以转移到更强大的机器上执行。

在执行示例脚本的过程中,代码执行以下操作:

  • 使用ClearML的自动和显式日志记录。
  • examples项目中创建一个名为Remote_execution PyTorch MNIST train的实验。

标量

在示例脚本的 train 函数中,以下代码明确将标量报告给 ClearML:

Logger.current_logger().report_scalar(
title="train",
series="loss",
iteration=(epoch * len(train_loader) + batch_idx),
value=loss.item()
)

在脚本的test函数中,代码明确报告了lossaccuracy标量。

Logger.current_logger().report_scalar(
title="test", series="loss", iteration=epoch, value=test_loss
)
Logger.current_logger().report_scalar(
title="test", series="accuracy", iteration=epoch, value=(correct / len(test_loader.dataset))
)

这些标量可以在图中可视化,这些图会出现在ClearML网页界面的实验SCALARS标签中。

实验标量

超参数

ClearML 自动记录使用 argparse 定义的命令行选项。它们会出现在 配置 > 超参数 > 参数 中。

实验超参数

控制台

打印到控制台的训练进度文本,以及所有其他控制台输出,显示在控制台中。

实验控制台日志

工件

实验创建的模型会出现在实验的ARTIFACTS标签中。ClearML 会自动记录和跟踪使用 PyTorch 创建的模型及其任何快照。

实验工件