ClearML如何设置可配置超参数使其显示在UI面板并支持在线修改
ClearML超参数显示与UI修改操作指南
1. 超参数同步到UI配置面板
要让epochs、learning rate等参数显示在ClearML UI的超参数分类下,只需要在代码中通过Task.connect()方法注册你的超参数即可,支持直接注册字典或者argparse参数对象:
字典形式注册示例
from clearml import Task # 初始化ClearML任务 task = Task.init(project_name="你的项目名称", task_name="你的任务名称") # 定义超参数字典 hyper_params = { "epochs": 10, "learning_rate": 0.001, "batch_size": 32 } # 执行注册后,所有参数会自动同步到UI超参数分类下 task.connect(hyper_params)
argparse参数注册示例
如果用argparse管理参数,直接把解析后的参数对象传入即可:
import argparse from clearml import Task parser = argparse.ArgumentParser() parser.add_argument("--epochs", default=10, type=int) parser.add_argument("--learning_rate", default=0.001, type=float) args = parser.parse_args() task = Task.init(project_name="你的项目名称", task_name="你的任务名称") # 注册argparse参数 task.connect(args)
自定义超参数分组
如果需要把不同类型的参数拆分到不同分组方便管理,可以指定name参数自定义分组名:
# 模型参数会出现在超参数的「Model」分组下 model_params = {"hidden_dim": 256, "dropout": 0.3} task.connect(model_params, name="Model") # 训练参数会出现在超参数的「Train」分组下 train_params = {"epochs": 10, "learning_rate": 0.001} task.connect(train_params, name="Train")
2. UI内直接修改超参数
修改未启动任务的参数
任务创建后还未启动时,直接在ClearML UI的任务配置页的「超参数」板块,找到对应参数直接编辑保存即可,启动任务后代码读取到的就是修改后的参数值。
修改运行中任务的参数
如果需要在任务运行过程中动态调整参数,需要在代码里增加参数拉取逻辑,不要仅在初始化时读取一次参数:
for epoch in range(hyper_params["epochs"]): # 每个epoch开始前拉取UI端最新修改的参数 latest_params = task.get_parameters() current_epochs = latest_params["Train/epochs"] current_lr = latest_params["Train/learning_rate"] # 可在这里添加逻辑更新优化器学习率、调整训练总轮次 ...
内容的提问来源于stack exchange,提问作者Fawad Nizamani
相关产品推荐
相关产品推荐

