argparse是python自带的命令行参数解析包,可以用来方便地读取命令行参数。TensorFlow 中定义了 tf.app.flags.FLAGS ,用于接受从终端传入的命令行参数
1、argparse
# 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'
2、tf.app.flags.FLAGS
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))
//命令行参考上文
参考:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。