作用:
在执行main函数之前首先进行flags的解析,便于从命令行输入参数,例如交叉熵、迭代次数等
使用:
flags = tf.app.flags
FLAGS = flags.FLAGS
flags.DEFINE_float('learning_rate', 0.01, 'Initial learning rate.')
flags.DEFINE_integer('epoch_number', None, 'Number of epochs to run trainer.')
flags.DEFINE_integer("thread_number", 10 , "Number of thread to read data")
flags.DEFINE_string("mode", "train", "Option mode: train, train_from_scratch, inference")
初始化:
直接在命令行输入 flag名称+参数即可,例如
--learning_rate 0.01
参数会在执行main之前调用
原理:
TF底层函数使用的是Python argparse模块
argparse是python用于解析命令行参数和选项的标准模块,argparse模块的作用是用于解析命令行参数,例如python parseTest.py input.txt output.txt --user=name --port=8080
所以TF中使用flag的方式跟Python使用argparse的方式相同