1 Introduction
经常会在开源代码中看到tf.flags的出现,之前一直不明所以,现在终于懂了。特记录于此,以供参考。
2 Related Work
tf.flags.DEFINE_integer(‘变量名’, ‘变量值’, ‘说明文字’)是用于定义变量的。如参数列表中的中文可知,其中第一个参数是定义变量的名字,第二个参数是定义变量的值,第三个参数通常是一段说明文字,并且DEFINE_integer表明定义的是一个整型变量。
3 Why
那为何又要这样不嫌麻烦的来定义变量呢?其实这样定义的变量有一个好处,那就是可以直接从命令行修改变量的值,方便调试实验的参数,而不需要在源码中修改参数的值。
4 Example
举个栗子:
程序example.py的代码如下:
import tensorflow as tf
FLAGS = tf.flags.FLAGS
tf.flags.DEFINE_integer('num', 100, 'just a number')
print(FLAGS.num)
直接运行代码,输出的是变量num的值100。但是在python终端运行如下命令:python example.py \ -num 50
将得到50的结果。请看图:
就是可以直接在命令行中调试实验参数。嘿嘿,这下懂了吧。