TensorFlow之命令行参数详解

TensorFlow定义了tf.app.flags(也可以用它的别名tf.flags),用于支持接受命令行传递参数,相当于接受argv。来看一个例子:


import tensorflow as tf

#第一个是参数名称,第二个参数是默认值,第三个是参数描述
tf.app.flags.DEFINE_string('str_name', 'def_v_1',"descript1")
tf.app.flags.DEFINE_integer('int_name', 10,"descript2")
tf.app.flags.DEFINE_boolean('bool_name', False, "descript3")

FLAGS = tf.app.flags.FLAGS

def main(_):  
    print(FLAGS.str_name)
    print(FLAGS.int_name)
    print(FLAGS.bool_name)

if __name__ == '__main__':
    tf.app.run()  #run main function
执行上述程序,其运行结果如下所示:

当然,如果你在使用命令行的时候,只输入变量名,而不给出变量值,程序就会报错。如上图中命令行里最后一个执行实例所示。


因为Python是解释型语言,所以main函数并非是必须的。另外, 加上_parse_flags()后的作用是可以把FLAGS.__flags变成一个字典。下面的代码演示了遍历并输出所有命令行参数及它们获得之值的结果:

import tensorflow as tf

tf.flags.DEFINE_integer("embedding_dim", 100, "descript1")
tf.flags.DEFINE_float("l2_reg_lambda", 0.0, "descript2")
tf.flags.DEFINE_string("training_files", None, "descript3")

FLAGS = tf.flags.FLAGS
FLAGS._parse_flags()
print("\nParameters:")
for attr, value in sorted(FLAGS.__falgs.items());
	print("{}={}".format(attr.upper(), value))
print("")

if FLAGS.training_files==None:
	print "Input Files List is empty. --training files argument."
	exit()
执行结果如下图所示:


(本文完)

评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白马负金羁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值