微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

tensorflow

tf.app.flags主要用于处理命令行参数的解析工作,可以理解为一个封装好了的argparse包(argparse是一种结构化的数据存储格式,类似于Json、XML)

1.导入了argparse

2.创建一个解析器对象,argparse中的解析器类是ArgumentParser

3.定义_FlagValue类

  要处理命令行参数,就要用解析器类_global_parser里的方法来解析,这里使用了parse_kNown_args()函数

  函数返回的”result“是参数解析完的数据,而”unparsed“是未被解析的参数list。

  将命令行传入的命令和解析出来的数据以字典的形式放到__dict__['_flags']这个字典中,方便后续调用

4.设置和获得解析的命令行参数,setattr/getattr

 获取参数,除了要判断参数是否在字典里的基本要求外,还要判断有没有解析过参数

 如果没有就运行_parse_flags解析参数,如果有,那么self.__dict__[‘__parsed’]就会为True。

5.实例化——FlagValues类

6.定义_define_helper方法

 _define_helper函数调用_global_parser.add_argument完成对命令行参数的添加(传入flag_name,default_value,docstring,flagtype参数)

   添加参数使用的是解析器类_global_parser方法

   第一个参数是‘--’+flag_name这个表示定义的命令行参数使用时必须以‘--’开头

   第二个参数default_value是参数的认值

   第三个参数docstring保存帮助信息

   第四个参数表示限定了赋予命令行参数数据的类型

7. DEFINE_string方法

    由于_define_helper()最后一个type参数是str,说明DEFINE_string()限定了可选参数输入必须是string

8. mark_flags_as_required方法

   在程序运行前先将某些命令行参数加入到”必备参数“(__required_flags)的字典中,以判断解析完的参数是否满足这些必备要求

   mark_flags_as_required方法调用mark_flag_as_required方法,来将当前传入的参数加入到__required_flags字典中(_add_required_flag方法

  

9. 使用tensorflow

   

import tensorflow as tf  

flags = tf.app.flags
flags.DEFINE_string('data_dir', '/tmp/mnist', 'Directory with the MNIST data.')
flags.DEFINE_integer('batch_size', 5, 'Batch size.')
flags.DEFINE_integer('num_evals', 1000, 'Number of batches to evaluate.')
FLAGS = flags.FLAGS


if __name__ == '__main__':
    tf.app.run()
 

   

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐