Argparse

In simple terms, the job of tf.app.run() is to first set the global flags for later usage like:

from tensorflow.python.platform import flags
f = flags.FLAGS

and then run your custom main function with a set of arguments.

For e.g. in TensorFlow NMT codebase, the very first entry point for the program execution for training/inference starts at this point (see below code)

if __name__ == "__main__":
  nmt_parser = argparse.ArgumentParser()
  add_arguments(nmt_parser)
  FLAGS, unparsed = nmt_parser.parse_known_args()
  tf.app.run(main=main, argv=[sys.argv[0]] + unparsed)

After parsing the arguments using argparse, with tf.app.run() you run the function "main" which is defined like:

def main(unused_argv):
  default_hparams = create_hparams(FLAGS)
  train_fn = train.train
  inference_fn = inference.inference
  run_main(FLAGS, default_hparams, train_fn, inference_fn)

So, after setting the flags for global use, tf.app.run() simply runs that main function that you pass to it with argv as its parameters.

参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
argparse 是 Python 标准库中用于解析命令行参数的模块。它可以让你轻松地编写用户友好的命令行界面,并且提供了很多灵活的选项和参数设置。 使用 argparse,你可以定义程序需要的所有参数和选项,包括位置参数和可选参数,还可以指定默认值、帮助信息、类型检查等等。argparse 会自动解析用户输入的命令行参数,并将它们转换成 Python 对象,方便你在程序中使用。 argparse 的主要类包括 ArgumentParser、ArgumentGroup 和 Namespace。ArgumentParser 是解析器的核心类,它定义了程序的基本参数和选项,并且可以把它们分成不同的组。ArgumentGroup 是一个可选的类,用于更好地组织参数和选项。Namespace 是 argparse 自动创建的一个对象,用于存储解析后的参数和选项值。 下面是一个简单的 argparse 示例: ```python import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers)) ``` 这个程序接受一个或多个整数作为位置参数,并且还有一个可选的 --sum 参数,用于指定对这些整数进行求和还是找出最大值。你可以在命令行中运行这个程序,并传入一些整数来测试它的功能,例如: ```bash $ python argparse_example.py 1 2 3 4 4 $ python argparse_example.py 1 2 3 4 --sum 10 ``` 在这个例子中,我们首先创建了一个 ArgumentParser 对象,并设置了程序的描述信息。然后我们调用 add_argument 方法添加两个参数,一个是位置参数 integers,它接受一个或多个整数值,nargs='+' 表示可以接受多个值;另一个是可选参数 --sum,它没有位置限制,dest 参数指定了它对应的属性名为 accumulate,action 参数指定了当这个参数出现时,它的值应该是 sum 函数,否则默认为 max 函数。 最后我们调用 parse_args 方法来解析命令行参数,并将结果存储在 args 对象中。我们可以通过访问 args 对象的属性来获取用户输入的参数和选项值。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值