总结起来的话,tf.app.flags.DEFINE_xxx()就是添加命令行的optional argument(可选参数),而tf.app.flags.FLAGS可以从对应的命令行参数取出参数。
举个例子
新建testc.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')
def main(_):
print(FLAGS.flag_float)
print(FLAGS.flag_int)
print(FLAGS.flag_bool)
print(FLAGS.flag_string)
if __name__ == '__main__':
tf.app.run()
- 在命令行中查看帮助信息,在命令行输入
python testc.py -h
- 直接运行
python testc.py
因为没有给对应的命令行参数赋值,所以输出的是命令行参数的默认值。
3.带命令行参数的运行testc.py
文件,例如输入python testc.py --flag_float 100
,这样输出的就不是默认值,而是新传入的参数。
4.参考:
https://blog.csdn.net/m0_37041325/article/details/77448971
https://blog.csdn.net/hjxu2016/article/details/78649077