美文网首页
Tensorflow---tf.app.flags

Tensorflow---tf.app.flags

作者: 渺茫的小怪兽 | 来源:发表于2019-12-05 21:29 被阅读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)

    相关文章

      网友评论

          本文标题:Tensorflow---tf.app.flags

          本文链接:https://www.haomeiwen.com/subject/jspjgctx.html