hfai.autotune¶
按给定超参组合发起训练任务 |
|
进行超参数网格搜索 |
|
在训练代码中获取超参数 |
|
在训练代码中汇报训练结果 |
|
在训练完成后统计训练结果 |
|
将autotune设置为debug模式 |
- hfai.autotune.run(config, tunable_args, log_dir)[source]¶
按给定超参组合发起训练任务
- Parameters
config (str) – 记录除了待调参数以外的训练配置的yaml文件路径或yaml字符串,格式参考 hfai配置文件示例 。
tunable_args (list) – 所有待调参数组合的列表, 如[{“lr”:0.1, “bs”:256}]代表使用这一组参数进行发起一个训练任务
log_dir (str) – 记录训练结果的log文件夹路径
- Returns
None
Examples
>>> args = [{"lr":0.1, "bs":256}, {"lr":1e-3, "bs":64}] >>> hfai.autotune.run(config = "autotunetest.yaml", tunable_args = args, log_dir = "autotune_test_log")
- hfai.autotune.run_grid_search(config, tunable_args, log_dir)[source]¶
进行超参数网格搜索
根据给定的参数范围进行网格搜索,自动发起所有参数组合的训练
- Parameters
config (str) –
记录除了待调参数以外的训练配置的yaml文件路径或yaml字符串,格式参考 hfai配置文件示例 。
tunable_args (dict) – 所有待调参数的调节范围, 字典内支持列表和元组两种参数输入形式:列表形式代表遍历列表内的参数值;元组形式为三元组(start, end, step),代表在[start, end)范围内以step为步长便利参数值
log_dir (str) – 记录训练结果的log文件夹路径
- Returns
None
Examples
>>> args = {"lr":(0.1, 0.2, 0.05), "bs":[64, 128, 192, 256]} >>> hfai.autotune.run_grid_search(config = "autotunetest.yaml", tunable_args = args, log_dir = "autotune_test_log") The following params will be used: [{"lr":0.1, "bs":64}, {"lr":0.15, "bs":64}, {"lr":0.1, "bs":128}, ..., {"lr":0.15, "bs":256}]
- hfai.autotune.get_args()[source]¶
在训练代码中获取超参数
- Returns
包含待调参数名与其使用的值的字典, key与value分别是参数名和参数值
- Return type
argsdata (dict)
Examples
>>> args = hfai.autotune.get_args() >>> lr = args["lr"] >>> batch_size = args["bs"]
- hfai.autotune.report(metrics)[source]¶
在训练代码中汇报训练结果
- Parameters
metrics (dict) – 记录训练指标结果的字典, key与value分别是指标名和结果值
- Returns
None
Examples
>>> metrics = get_evaluation_result() #获取字典形式的训练结果 >>> metrics {"prec":0.85, "recall":0.78, "loss":0.13} >>> hfai.autotune.report(metrics)
- hfai.autotune.show_result(log_dir, metric, sort_op='max', mode='all')[source]¶
在训练完成后统计训练结果
汇总不同参数下训练的模型的最终指标,返回最优或全部结果并以表格形式打印输出
- Parameters
log_dir (str) – 存储待统计结果的log文件夹名
metric (str) – 选取最优结果时的评价指标
sort_op (str) – 结果排序方式,默认为从大到小(max), 可改为从小到大(min)
mode (str) – 默认为”all”返回排序后的全部结果, 可改为”best”返回最好结果
- Returns
返回排序后的训练结果列表
- Return type
results (list)
Examples
>>> result = hfai.autotune.show_result("train_log", "prec") +---------------------------------+--------+---------+ | Log Name | Prec | Recall | +=================================+========+=========+ | log_lr_0.001_batchsize_256.json | 0.82 | 0.85 | ......