tf.app.flags.DEFINE_XXX和tf.app.flags.FLAGS

tf.app.flags.DEFINE_XXX()就是添加命令行的optional argument(可选参数)

如果一个demo.py文件的代码中有tf.app.flags.DEFINE_XXX()时,比如有:

tf.app.flags.DEFINE_string(flag_name="logdir",
                           default_value="./graph",
                           docstring="给定模型日志存储的路径,默认为./graph")
tf.app.flags.DEFINE_integer(flag_name="batch_size",
                            default_value=16,
                            docstring="给定训练的时候每个批次的样本数目,默认为16.")

我们在这写这句代码时已经给定它们默认值了,就是default_value的值。如果我们后面想在运行py时重新给定它们的值时,可以通过命令的方式,不用去专门手动改它们的默认值,那如果这次要改成这样,下次改成那样,改来改去麻烦。直接看运行需要啥值,直接传就行了。
所以用命令的方式给定就行了。实际上,这个过程相当于传参一样。实现方式是:
如果是在cmd中,执行此demo.py文件,命令是:

D:\projects\cnn>python demo.py --logdir ./ddd --batch_size 20

服务器执行时,也可以是这样的命令,具体看是啥服务器了。
这样的话,运行时会以命令中给定的值去运行,而不会使用默认值。
如果让此脚本文件在服务器上运行,通过命令的方式传值,这样也会更方便。

总之,让py文件通过命令行的方式去执行,就能去指定值,不指定的话,就用默认值,而且不指定的话,也可以不用用命令的方式执行py文件,直接在pycharm中运行也可以哦!

而tf.app.flags.FLAGS可以从对应的命令行取出参数

import tensorflow as tf

# tf.app.flags.DEFINE_xxx()就是添加命令行的optional argument(可选参数)
# 而tf.app.flags.FLAGS可以从对应的命令行参数取出参数

tf.app.flags.DEFINE_boolean(
    flag_name='flag_bool', default_value=True, docstring='input a bool')
tf.app.flags.DEFINE_string(
    flag_name='flag_string', default_value='yes', docstring='input a string')

FLAGS = tf.app.flags.FLAGS

print(FLAGS.flag_bool)
print(FLAGS.flag_string)
'''
执行结果如下:
True
yes
'''
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值