在执行main函数之前首先进行flags的解析,也就是说TensorFlow通过设置flags来传递tf.app.run()所需要的参数,我们可以直接在程序运行前初始化flags,也可以在运行程序的时候设置命令行参数来达到传参的目的。
下面是一个小demo
import tensorflow as tf
flags = tf.app.flags
FLAGS = flags.FLAGS
flags.DEFINE_string("name", "x1aolata", "name")
flags.DEFINE_integer("age", 23, "age")
flags.DEFINE_boolean("isMarried", None, "isMarried")
flags.DEFINE_float("score", 98.5, "score")
def main(_):
print("name:{}".format(FLAGS.name))
print("age:{}".format(FLAGS.age))
print("isMarried:{}".format(FLAGS.isMarried))
print("score:{}".format(FLAGS.score))
if __name__ == "__main__":
tf.app.run()
flags.DEFINE_string这些就是定义参数
它的三个参数分别是参数名、默认值和参数说明。
直接运行,结果如下
name:x1aolata
age:23
isMarried:None
score:98.5
可以在命令行中给定参数运行
$ python test.py --name=小邋遢 --age=32
运行结果
name:小邋遢
age:32
isMarried:None
score:98.5