tf 中定义了 tf.app.flags.FLAGS ,用于接受从终端传入的命令行参数,相当于对Python中的命令行参数模块optpars(参考: python中处理命令行参数的模块optpars )做了一层封装。

optpars中的参数类型是通过参数 “type=xxx” 定义的,tf中每个合法类型都有对应的 “DEFINE_xxx”函数。常用:
  • tf.app.flags.DEFINE_string() :定义一个用于接收 string 类型数值的变量;
  • tf.app.flags.DEFINE_integer() : 定义一个用于接收 int 类型数值的变量;
  • tf.app.flags.DEFINE_float() : 定义一个用于接收 float 类型数值的变量;
  • tf.app.flags.DEFINE_boolean() : 定义一个用于接收 bool 类型数值的变量;

“DEFINE_xxx”函数带3个参数,分别是变量名称,默认值,用法描述,例如:

tf.app.flags.DEFINE_string('ckpt_path', 'model/model.ckpt-100000', '''Checkpoint directory to restore''')

定义一个名称是 "ckpt_path" 的变量,默认值是 ckpt_path = 'model/model.ckpt-100000',描述信息表明这是一个用于保存节点信息的路径。


example:

# -*- coding=utf-8 -*-

import tensorflow  as tf

FLAGS = tf.app.flags.FLAGS

tf.app.flags.DEFINE_string('ckpt_path', 'model/model.ckpt-100000', '''模型保存路径''')
tf.app.flags.DEFINE_float('learning_rate',0.0001,'''初始学习率''')
tf.app.flags.DEFINE_integer('train_steps', 50000, '''总的训练轮数''')
tf.app.flags.DEFINE_boolean('is_use_gpu', False, '''是否使用GPU''')

print '模型保存路径: {}'.format(FLAGS.ckpt_path)
print '初始学习率: {}'.format(FLAGS.learning_rate)
print '总的训练次数: {}'.format(FLAGS.train_steps)
print '是否使用GPU: {}'.format(FLAGS.is_use_gpu)

使用 '-h' 指令查看帮助信息:

python flags_test.py -h


按默认设置执行程序:



传入用户自定义的命令行参数:

python flags_test.py --ckpt_path abc/cba --learning_rate 0.001 --train_steps 10000 --is_use_gpu True


posted on 2018-03-22 22:19  未雨愁眸  阅读(1999)  评论(0编辑  收藏  举报