PAI-TF支持通过超参TXT文件或Command传入相应的超参配置,从而在模型试验时可以尝试不同的Learning Rate及Batch Size等。

超参文件

您可以通过一个本地文件配置相应的超参信息,格式如下。
batch_size=10
learning_rate=0.01
TensorFlow Python SDK提供了相应的参数以便获取相应的超参,您可以通过tf.app.flags.FLAGS读取所需的超参,再将其传入运行脚本中,即可在模型训练文件中读取到相应的超参定义。具体方法如下:
  1. 假设上面定义的超参文件存储在oss://xxx.oss-cn-beijing.aliyuncs.com/tf/hyper_para.txt,参考如下Python代码读取超参。
    import tensorflow as tf
    tf.app.flags.DEFINE_string("learning_rate", "", "learning_rate")
    tf.app.flags.DEFINE_string("batch_size", "", "batch size")
    FAGS = tf.app.flags.FLAGS
    print("learning rate:" + FAGS.learning_rate)
    print("batch size:" + FAGS.batch_size)
  2. 通过-DhyperParameters将超参传入到运行脚本中,示例如下。
     pai -name tensorflow1120_ext
             -Dscript='oss://xxx.oss-cn-beijing.aliyuncs.com/tf/hello_hyperpara.py'
             -Dbuckets='oss://xxx.oss-cn-beijing.aliyuncs.com/'
             -DhyperParameters='oss://xxx.oss-cn-beijing.aliyuncs.com/tf/hyper_para.txt'
             -Darn='acs:ram::111***:role/***role';

字符串形式参数

PAI-TF也支持以字符串形式传入参数,您可以直接将字符串通过userDefinedParameters传入,示例如下。
pai -name tensorflow1120_ext
         -Dscript='oss://xxx.oss-cn-beijing.aliyuncs.com/tf/hello_hyperpara.py'
         -Dbuckets='oss://xxx.oss-cn-beijing.aliyuncs.com/'
         -DuserDefinedParameters="--batch_size=10 --learning_rate=0.01"
         -Darn='acs:ram::111***:role/***role';
说明 以字符串传入的参数,使用KV格式,每一个KV前面需要以“--”作为前缀。