查看: 1189|回复: 1

tensorflow命令行参数:tf.app.flags.DEFINE_string等

[复制链接]

166

主题

616

帖子

1万

积分

xdtech

Rank: 5Rank: 5

积分
10813
发表于 2018-12-7 10:18:03 | 显示全部楼层 |阅读模式
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


回复

使用道具 举报

166

主题

616

帖子

1万

积分

xdtech

Rank: 5Rank: 5

积分
10813
 楼主| 发表于 2018-12-26 17:17:34 | 显示全部楼层
这个
必须要学习
很多开源代码的input output
都是这些东西
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表