今天主要是学习一下使用tensorflow中的tf.app.flags.FLAGS的用法
其主要格式是
tf.app.flags.DEFINE_integer("run_time",10,"loop times")
中间的DEFINE_integer
是定义参数类型,"run_time"
是参数名,10
是默认值,"loop times"
是对参数的描述
源程序如下:
# -*- coding: utf-8 -*-
"""
Created on Wed Oct 24 09:29:47 2018
@author: rruser
"""
import tensorflow as tf
tf.reset_default_graph()
FLAGS = tf.app.flags.FLAGS#
#tf.app.flags.DEFINE_string("para_name","default_val","description")
def del_all_flags(FLAGS):
flags_dict = FLAGS._flags()
keys_list = [keys for keys in flags_dict]
for keys in keys_list:
FLAGS.__delattr__(keys)
del_all_flags(tf.flags.FLAGS)
tf.app.flags.DEFINE_integer("run_time",10,"run time description")
def main(unused_argv):
run_time = FLAGS.run_time
print("run_time",run_time)
hello = tf.constant("Hello, Tensorflow!")
with tf.Session() as sess:
sess.run(tf.initialize_all_variables())
for i in range(run_time):
print(sess.run(hello))
if __name__ =='__main__':
tf.app.run()
如果没有def del_all_flags(FLAGS)
这一部分,在spyder中运行第二次的时候会报如下错误:
因此需要加上该函数,每次运行前清空FLAGS变量
运行该程序时,如果用命令行运行 调用外部参数,那么就会用默认参数运行,结果如下:
如果在终端运行,自己设置参数 格式如:python a.py --run_time num
,我们在spyder终端运行run 1024app_flags.py --run_time 5
,结果如下:
此篇blog的主要目的是了解tf.app.flags的用法,以及在spyder中运行会出现的问题,并且学会如何在终端运行。