argparse是python自带的命令行参数解析包,可以用来方便地读取命令行参数。TensorFlow 中定义了 tf.app.flags.FLAGS ,用于接受从终端传入的命令行参数
# name test_arg.py import argparse # 命令行参数定义和解析 parser = argparse.ArgumentParser(description="Demo of argparse") parser.add_argument('--name', type = str,default='Li',help = u'姓名') parser.add_argument('--year', type = int,default=20) parser.add_argument('--gent', type = str,default='male',choice = ['female','male']) args = parser.parse_args() # 命令行参数调用 name = args.name year = args.year print('Hello {} {}'.format(name,year))
#上面的程序还可以这么定义 #parser.add_argument('-y','--year', type = int,default=20) #当'-'和'--'同时出现的时候,系统默认后者为参数名,前者不是,但是在命令行输入的时候没有这个区分
步骤:
1、首先导入argparse
这个包
2、然后利用包中的ArgumentParser
类生成parse对象(参数解析器)
3、接着我们通过对象的add_argument
函数来增加参数
4、最后采用对象的parse_args
获取解析的参数
命令行执行文件:
python test_arg.py --year 25 --name 'liu'
tf.app.flags.DEFINE_string():定义一个用于接收 string 类型数值的变量;
tf.app.flags.DEFINE_integer() : 定义一个用于接收 int 类型数值的变量;
tf.app.flags.DEFINE_float() : 定义一个用于接收 float 类型数值的变量;
tf.app.flags.DEFINE_boolean() : 定义一个用于接收 bool 类型数值的变量;
“DEFINE_xxx”函数带3个参数,分别是变量名称,默认值,用法描述,例如:
tf.app.flags.DEFINE_string('ckpt_path', 'model/model.ckpt-100000', '''Checkpoint directory to restore''') #定义一个名称是 "ckpt_path" 的变量,默认值是 ckpt_path = 'model/model.ckpt-100000',描述信息表明这是一个用于保存节点信息的路径。
#example: # -*- coding=utf-8 -*- import tensorflow as tf Flags = tf.app.flags Flags.DEFINE_string('ckpt_path', 'model/model.ckpt-100000', '''模型保存路径''') Flags.DEFINE_float('learning_rate',0.0001,'''初始学习率''') Flags.DEFINE_integer('train_steps', 50000, '''总的训练轮数''') Flags.DEFINE_boolean('is_use_gpu', False, '''是否使用GPU''') FLAGS = Flags.FLAGS print('模型保存路径: {}'.format(FLAGS.ckpt_path)) print('初始学习率: {}'.format(FLAGS.learning_rate)) print('总的训练次数: {}'.format(FLAGS.train_steps)) print('是否使用GPU: {}'.format(FLAGS.is_use_gpu))
//命令行参考上文
参考: