Skip to main content

超参数报告

hyper_parameters.py 示例脚本展示了:

  • ClearML自动记录argparse命令行选项和TensorFlow定义
  • 使用参数字典记录用户定义的超参数,并将字典连接到任务。

超参数出现在实验页面的web UI中,位于配置 > 超参数下。 每种类型都在其自己的子部分中。旧实验的参数与argparse命令行选项(在Args子部分中)分组在一起。

当脚本运行时,它会在examples项目中创建一个名为hyper-parameters example的实验。

Argparse 命令行选项

如果代码使用argparse并初始化一个任务,ClearML会自动记录argparse参数。

parser = ArgumentParser()
parser.add_argument('--argparser_int_value', help='integer value', type=int, default=1)
parser.add_argument(
'--argparser_disabled', action='store_true', default=False, help='disables something'
)
parser.add_argument('--argparser_str_value', help='string value', default='a string')

args = parser.parse_args()

命令行选项出现在超参数 > 参数中。

image

TensorFlow 定义

ClearML 自动记录 TensorFlow 定义,无论它们是在任务初始化之前还是之后定义的。

flags.DEFINE_string('echo', None, 'Text to echo.')
flags.DEFINE_string('another_str', 'My string', 'A string', module_name='test')

task = Task.init(project_name='examples', task_name='hyperparameters example')

flags.DEFINE_integer('echo3', 3, 'Text to echo.')

flags.DEFINE_string('echo5', '5', 'Text to echo.', module_name='test')

TensorFlow 定义出现在 HYPEPARAMETERS > TF_DEFINE 中。

image

参数字典

通过调用Task.connect()将参数字典连接到任务,ClearML会记录这些参数。ClearML还会跟踪参数的变化。

parameters = {
'list': [1, 2, 3],
'dict': {'a': 1, 'b': 2},
'tuple': (1, 2, 3),
'int': 3,
'float': 2.2,
'string': 'my string',
}

parameters = task.connect(parameters)

# adding new parameter after connect (will be logged as well)
parameters['new_param'] = 'this is new'

# changing the value of a parameter (new value will be stored instead of previous one)
parameters['float'] = '9.9'

与任务连接的字典中的参数出现在超参数 > 常规中。

image