tf.app.flags.DEFINE_string() 和 tf.app.flags.FLAGS 的作用及使用方法

在tensorflow中使用tf.app.flags来定义参数,能够使得程序在使用命令行运行程序时,可以通过命令行添加程序参数。

import tensorflow as tf
 
#第一个是参数名称,第二个参数是默认值,第三个是参数描述
tf.app.flags.DEFINE_string('str_name', 'default_value',"description1")
tf.app.flags.DEFINE_integer('int_name', 10,"description2")
tf.app.flags.DEFINE_boolean('bool_name', False, "description3")
 
FLAGS = tf.app.flags.FLAGS
 
#必须带参数,否则:'TypeError: main() takes no arguments (1 given)';   main的参数名随意定义,无要求
def main(_):  
    print(FLAGS.str_name)
    print(FLAGS.int_name)
    print(FLAGS.bool_name)
if __name__ == '__main__':
    tf.app.run()  #执行main函数

以命令行运行程序时,不带参数运行,程序使用默认值;使用命令行赋初值时,就会调用使用命令行设置的值。


原文:https://blog.csdn.net/u011370461/article/details/79041691 
 

~~~~~~~~~~~~~~~~~

定义了_FlagValues这个类的一个实例,这样当要访问命令行输入的命令时,就能使用像tf.app.flag.Flags这样的操作。

感觉说得很零碎,总结起来的话,tf.app.flags.DEFINE_xxx()就是添加命令行的optional argument(可选参数),而tf.app.flags.FLAGS可以从对应的命令行参数取出参数。

举个栗子

新建test.py文件,并输入如下代码,代码的功能是创建几个命令行参数,然后把命令行参数输出显示

import tensorflow  as tf
FLAGS=tf.app.flags.FLAGS
tf.app.flags.DEFINE_float(
    'flag_float', 0.01, 'input a float')
tf.app.flags.DEFINE_integer(
    'flag_int', 400, 'input a int')
tf.app.flags.DEFINE_boolean(
    'flag_bool', True, 'input a bool')
tf.app.flags.DEFINE_string(
    'flag_string', 'yes', 'input a string')
 
print(FLAGS.flag_float)
print(FLAGS.flag_int)
print(FLAGS.flag_bool)
print(FLAGS.flag_string)


1.在命令行中查看帮助信息,在命令行输入 python test.py -h

注意红色框中的信息,这个就是我们用DEFINE_XXX添加命令行参数时的第三个参数

2.直接运行test.py

因为没有给对应的命令行参数赋值,所以输出的是命令行参数的默认值。

3.带命令行参数的运行test.py文件

这里输出了我们赋给命令行参数的值


原文:https://blog.csdn.net/m0_37041325/article/details/77448971 
 

猜你喜欢

转载自blog.csdn.net/hellocsz/article/details/89246818