步骤:
1.定义命令行参数
flags 模块:实现标志接口
DEFINE_string 定义一个用于接收 string 类型数值的变量;
DEFINE_boolean 定义一个用于接收 bool 类型数值的变量
DEFINE_bool
DEFINE_float 定义一个用于接收 float 类型数值的变量
DEFINE_integer 定义一个用于接收 int 类型数值的变量;
DEFINE_xxx”函数带3个参数,分别是变量名称,默认值,用法描述
2. 解析命令行参数
f=tf.flags.FLAGS
3.调用变量
方法1.直接调用
f.变量名
方法2.先解析成字典对象,再调用
f_dict=f.flag_values_dict()
f_dict['变量名']
4.定义main()函数
def main(unargs):
pass
5.定义运行程序
函数run(...):使用可选的 “main” 函数和 “argv” 列表运行程序
tf.app.run
run (
main = None ,
argv = None
)
使用可选的 “main” 函数和 “argv” 列表运行程序
if __name__=="__main__":
tf.app.run()
6.在命令窗口运行,也可以直接在pycharm中运行
python **.py --参数名=赋值
案例
import tensorflow as tf
#定义命令行参数
#第一个是参数名称,第二个参数是默认值,第三个是参数描述
tf.flags.DEFINE_integer('a',2,'input_a')
tf.flags.DEFINE_integer('b',3,'input_b')
#FLAGS是一个对象,保存了解析后的命令行参数
f=tf.flags.FLAGS
#解析为字典
f_dict=f.flag_values_dict()
print(type(f_dict))
#必须带参数,否则:'TypeError: main() takes no arguments (1 given)'; ##main的参数名随意定义,无要求
def main(unused_argv):
#调用命令行参数对象
d=f_dict['a']+f_dict['b']
c=f.a+f.b
print(c)
print(d)
if __name__=="__main__":
tf.app.run()
命令窗口执行
python test4.py --a=4 --b=5