tf.app.flags()和tf.flags()的用法及区别

tf.app.flags主要用于处理命令行参数的解析工作,其实可以理解为一个封装好了的argparse包(argparse是一种结构化的数据存储格式,类似于Json、XML)。跟它配合使用的还有一个tf.app.run()函数,它的核心意思:执行程序中main函数,并解析命令行参数。

问题现场:

tf.app.flags()和tf.flags()定义了变量后,输出没啥区别,并且可以在终端运行时,传入参数,也都可以更新默认参数,有什么区别?

import tensorflow as tf
#第一个是参数名称,第二个参数是默认值,第三个是参数描述
tf.app.flags.DEFINE_string('str_name', 'def_v_1',"descrip1")
tf.app.flags.DEFINE_integer('int_name', 10,"descript2")
tf.app.flags.DEFINE_boolean('bool_name', False, "descript3")
FLAGS = tf.app.flags.FLAGS

print(FLAGS.str_name)
print(FLAGS.int_name)
print(FLAGS.bool_name)

输出:
def_v_1
10
False
$ python temp.py --str_name='ss'
import tensorflow as tf
#第一个是参数名称,第二个参数是默认值,第三个是参数描述
tf.flags.DEFINE_string('str_name', 'def_v_1',"descrip1")
tf.flags.DEFINE_integer('int_name', 10,"descript2")
tf.flags.DEFINE_boolean('bool_name', False, "descript3")
FLAGS = tf.flags.FLAGS

print(FLAGS.str_name)
print(FLAGS.int_name)
print(FLAGS.bool_name)

输出:
def_v_1
10
False

区别:

在老版本1.0+的tensorflow中使用tf.app.flags来定义参数,新版本2.0+用tf.flags来定义参数。(看到这,瞬间没有了求知欲...)

 

你可能感兴趣的:(TensorFlow)