1.功能解释
tensorflow中flags用于接收命令行传递参数,可以全局的更改代码中的参数。Tensorflow使用flags类定义命令行参数。网络模型中有大量的超参数需要我们赋值,所以此方法,提供了一种简便的方式对模型超参数进行调整。
整体思路就是,我们可以现在一个.py文件内定义参数,然后将参数保存至变量集FLAGS里,即我们对超参数的赋值,后面需要调用时,我们通过FLAGS对象来调用。其实,这和argparse的用法、功能是类似的。
基本定义函数类型,分别定义不同数据类型:
①flags.DEFINE_integer(1,2,3),②flags.DEFINE_float(1,2,3),③flags.DEFINE_boolean(1,2,3)
其中1:参数名称。2:默认值。3:参数描述。
2.使用流程
在文件中调用flags = tf.app.flags,定义参数名称,默认值,及参数描述
然后我们在接下来要用到某一定义参数的时候使用flags参数直接赋值即可
最后,在main函数运行时,先调用tf.app.run(),先处理flag解析,再执行main函数。
3.注意的点
值得注意的是,我们可以对具有默认值的参数在命令行中直接修改默认值。
有两种预声明flags和Flags对象的方法:
①flags = tf.app.flags,FLAGS = flags.FLAGS,老版本
②flags = tf.flags,FLAGS = flags.FLAGS,新版本
4.代码实践
这里我们贴出两篇博客,代码介绍的相对来说很详细:
https://blog.youkuaiyun.com/qq_36653505/article/details/81124533
https://blog.youkuaiyun.com/qq_41185868/article/details/82913886