tf.app.flags和tf.app.run的使用

tf.app.flagstf.app.run的使用

tf.app.flags主要用于处理命令行参数的解析工作,其实可以理解为一个封装好了的argparse包(argparse是一种结构化的数据存储格式,类似于JsonXML)。

 

我们通过tf.app.flags来调用这个flags.py文件,这样我们就可以用flags.DEFINE_interger/float()来添加命令行参数,而FLAGS=flags.FLAGS可以实例化这个解析参数的类从对应的命令行参数取出参数。
新建test.py文件,并输入如下代码,代码的功能是创建几个命令行参数,然后把命令行参数输出显示

import tensorflow as tf  

flags = tf.app.flags
flags.DEFINE_string('data_dir', '/tmp/mnist', 'Directory with the MNIST data.')
flags.DEFINE_integer('batch_size', 5, 'Batch size.')
flags.DEFINE_integer('num_evals', 1000, 'Number of batches to evaluate.')
FLAGS = flags.FLAGS

print(FLAGS.data_dir, FLAGS.batch_size, FLAGS.num_evals)

 

·  在命令行中输入test.py -h就可以查看帮助信息,也就是Directory with the MNIST data.,Batch size和Number of batches to evaluate这样的消息。

·  在命令行中输入test.py --batchsize 10就可以将batch_size的值修改为10!



tf.app.run()

该函数一般都是出现在这种代码中:

import tensorflow as tf



flags = tf.flags

flags.DEFINE_string('str_name', 'hjd', 'str_vale')

flags.DEFINE_integer('int_name', 200, 'int_value')

flags.DEFINE_bool('bool_name', False, 'bool_value')

flags = flags.FLAGS




#必须带参数,否则:'TypeError: main() takes no arguments (1 given)';

#main的参数名随意定义,无要求

def main(agr_123):

    print(flags.str_name)

    print(flags.int_name)

    print(flags.bool_name)



if __name__ == '__main__':

    tf.app.run()#执行main函数

上述第一行代码表示如果当前是从其它模块调用的该模块程序,则不会运行main函数!而如果就是直接运行的该模块程序,则会运行main函数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值