- 定义参数
- 向不同文件的函数传递参数:main.py把参数传给lib.py的fac函数。
- 随时随地添加参数:在lib.py的fac函数中添加新参数。
main.py
import tensorflow as tf
from lib import fac
FLAGS = tf.app.flags.FLAGS
tf.app.flags.DEFINE_boolean('save_image', True, """ whether to save predicted image """)
tf.app.flags.DEFINE_integer('batch_size', 5, """ batch_size """)
tf.app.flags.DEFINE_string('testing', '', """ checkpoint file """)
tf.app.flags.DEFINE_float('learning_rate', 1e-3, """ initial lr """)
tf.app.flags.DEFINE_enum('learning_policy', 'step', ['poly', 'step'],
'Learning rate policy for training.')
tf.app.flags.DEFINE_multi_integer('train_crop_size', [513, 513],
'Image crop size [height, width] during training.')
tf.app.flags.DEFINE_multi_float('inference_scales', [1.0],
'The scales to resize images for inference.')
def main(args):
fac(FLAGS)
print FLAGS.train
if __name__ == '__main__':
tf.app.run()
lib.py
import tensorflow as tf
def fac(FLAGS):
print FLAGS.save_image
print FLAGS.batch_size
print FLAGS.testing
print FLAGS.learning_rate
print FLAGS.train_crop_size
print FLAGS.inference_scales
tf.app.flags.DEFINE_string('train', 'yes', """ checkpoint file """)
- 参数传递方式:
python main.py -testing=abc python main.py --testing=abc python main.py --testing abc python main.py -testing abc
参数名前必须有1个或2个横线,参数名和参数中间可以是等号也可以是空格。
- 除string和枚举类型的值必须加单引号或双引号外,其它类型的值可以加也可以不加。