使用超参数自动调优

简介

超参数自动调优是Xiaomi Cloud-ML的功能,可以一次定义多组超参数组合,提交后并行进行训练,并返回效果最优的超参数组合。

代码规范

用户可自定义“效果最优”的指标,需要在TensorFlow模型代码中把指标写到 training/hptuning/metric 中,如下。

tf.summary.scalar("training/hptuning/metric", loss)

使用示例

我们可以使用samples中的代码示例,提交时把超参数等参数写到 job.json 文件中。

{
  "job_name": "hpat",
  "module_name": "trainer.task",
  "trainer_uri": "fds://cloud-ml/linear/trainer-1.0.tar.gz",
  "job_args": "--max_epochs 1000",
  "cpu_limit": "0.25",
  "memory_limit": "250M",
  "hyperparameters": {
    "goal": "MINIMIZE",
    "output_path": "fds://cloud-ml/linear/linear_hpat",
    "params": [
      {"optimizer": "ftrl", "learning_rate": 0.1},
      {"optimizer": "ftrl", "learning_rate": 0.5},
      {"optimizer": "sgd", "learning_rate": 0.1},
      {"optimizer": "sgd", "learning_rate": 0.5}
    ]
  }
}

然后使用 cloudml 命令行工具提交即可,由于我们需要定义超参数组合这是必须传入JSON文件作为参数。

cloudml jobs submit -f job.json

训练结束后,我们可以通过命令行查看任意一个任务的结果,系统可以自动选择效果最优的超参数组合返回给用户。

cloudml jobs list

cloudml jobs logs hpat-hp-0

cloudml jobs hp hpat-hp-0

参数介绍

  • -f 是可选参数,用户可以使用JSON文件来描述提交任务的参数,注意不可以和其他参数混用。

results matching ""

    No results matching ""