Tensorflow---tf.app.flags

2019-12-05  本文已影响0人  渺茫的小怪兽
很多时候在运行python代码的时候我们需要从外部定义参数(命令行传参),从而避免每次都需要改动代码。一般来说,使用的是argparse这个库,但是tensorflow也提供了这个功能,就是tf.app.flags。主要是在用命令行执行程序时,需要传些参数,其实也就可以理解成对argparse库进行的封装。
tf.app.flags在定义参数时通常有这四种常用的类型
tf.app.flags.DEFINE_string
tf.app.flags.DEFINE_integer
tf.app.flags.DEFINE_boolean
tf.app.flags.DEFINE_float
示例代码
# tflearning.py
import tensorflow as tf

# 第一个是参数名称,第二个参数是默认值,第三个是参数描述
tf.app.flags.DEFINE_string('string_name', 'Robert', "string_description")
tf.app.flags.DEFINE_integer('int_name', 10, "integer_description")
tf.app.flags.DEFINE_boolean('bool_name', False, "bool_description")
tf.app.flags.DEFINE_float('float_name', 1.1, "float_description")

FLAGS = tf.app.flags.FLAGS

# 必须带参数,否则:'TypeError: main() takes no arguments (1 given)';   main的参数名随意定义,无要求
def main(_):
    print(FLAGS.string_name)
    print(FLAGS.int_name)
    print(FLAGS.bool_name)
    print(FLAGS.float_name)

if __name__ == '__main__':
    # tf.app.run() 这种也可以
    tf.compat.v1.app.run()
有两种运行方式
python tflearning.py
python tflearning.py --string_name aaa --integer_name 123 --bool_name True --float_name 123.456
tf.app.run() | tf.compat.v1.app.run()表示执行程序中main函数,并解析命令行参数

其实默认是执行main()函数。 也可以传其他函数名,例如test

tf.app.run(test)|tf.compat.v1.app.run(test)
上一篇下一篇

猜你喜欢

热点阅读