• 『TensorFlow』命令行参数解析


    argparse很强大,但是我们未必需要使用这么繁杂的东西,TensorFlow自己封装了一个简化版本的解析方式,实际上是对argparse的封装

    脚本化调用tensorflow的标准范式:

    import pprint
    import tensorflow as tf
    
    flags = tf.app.flags
    
    # 脚本参数名,值,描述
    # 脚本参数有四种取值:整数,浮点数,字符串,布尔类型,也是相比argv模块高级
    flags.DEFINE_integer("epoch", 25, "Epoch to train [25]")
    flags.DEFINE_float("learning_rate", 0.0002, "Learning rate of for adam [0.0002]")
    flags.DEFINE_string("sample_dir", "samples", "Directory name to save the image samples [samples]")
    flags.DEFINE_boolean("train", False, "True for training, False for testing [False]")
    
    FLAGS = flags.FLAGS
    
    # main必须带参数
    # 否则:'TypeError: main() takes no arguments (1 given)';
    # 其中main的参数名随意定义,无要求
    def main(_):
    
        # flags.FLAGS.__flags为包含了所有输入的列表
        pp = pprint.PrettyPrinter()
        pp.pprint(flags.FLAGS.__flags)
        
        # 也可以单个查询,格式为:FLAGS.参数名
        if FLAGS.epoch is None:
            FLAGS.epoch = 50
    
    
    if __name__=='__main__':
        # 下面的函数会自动调用main函数
        tf.app.run()
    

     作为参考,稍微提一下使用sys包接收脚本参数的格式:

    import sys
    a=sys.argv[0]
    print(a)
    # 打印出脚本名
    

     tf的方法更为高级一些,自动区分参数类型,自动设定默认值,自动和参数名称对应,在tf脚本中,指定规定参数时只要:[脚本名 --参数名 参数值]即可,而且FLAGS可以直接传给函数增加便捷度:『TensorFlow』以GAN为例的神经网络类范式

  • 相关阅读:
    取近似值
    eclipse 自己主动为getter和setter加入中文凝视
    Linux对外连接port数限制
    C++链表冒泡,归并,插入排序(纯指针)
    Android之实现ViewPager+Fragment左右滑动
    获得鼠标离开消息。
    CMFCPropertyGridProperty的使用
    阅读书单
    Docker 容器管理
    docker rmi 详解
  • 原文地址:https://www.cnblogs.com/hellcat/p/7373600.html
Copyright © 2020-2023  润新知