Shortcuts

hfai.autotune

run

按给定超参组合发起训练任务

run_grid_search

进行超参数网格搜索

get_args

在训练代码中获取超参数

report

在训练代码中汇报训练结果

show_result

在训练完成后统计训练结果

set_debug_mode

将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")

进行超参数网格搜索

根据给定的参数范围进行网格搜索,自动发起所有参数组合的训练

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   |
                        ......
hfai.autotune.set_debug_mode()[source]

将autotune设置为debug模式

在调试模式下,训练任务会在本地运行。当任务有多组参数时,只会运行其中的一组用于调试。

Examples

>>> hfai.autotune.set_debug_mode()
>>> hfai.autotune.run(config, args, log_dir) #此时任务将在本地而非集群上运行