python学习 之 argparse

argparse是一个命令解析器,如下我们解析下tensorflow中的一个例子,希望大家共勉之。
import argparse
import sys
if __name__ == "__main__":
  parser = argparse.ArgumentParser()
  parser.register("type", "bool", lambda v: v.lower() == "true")
  parser.add_argument(
      "--max_steps",
      type=int,
      default=10,
      help="Number of steps to run trainer.")
  parser.add_argument(
      "--train_batch_size",
      type=int,
      default=100,
      help="Batch size used during training.")
  parser.add_argument(
      "--learning_rate",
      type=float,
      default=0.025,
      help="Initial learning rate.")
  parser.add_argument(
      "--data_dir",
      type=str,
      default="/tmp/mnist_data",
      help="Directory for storing data")
  parser.add_argument(
      "--ui_type",
      type=str,
      default="curses",
      help="Command-line user interface type (curses | readline)")
  parser.add_argument(
      "--fake_data",
      type="bool",
      nargs="?",
      const=True,
      default=False,
      help="Use fake MNIST data for unit testing")
  parser.add_argument(
      "--debug",
      type="bool",
      nargs="?",
      const=True,
      default=False,
      help="Use debugger to track down bad values during training")
  FLAGS, unparsed = parser.parse_known_args()

主要使用了这么几个接口(对于python,大家可以通过help(argparse)去查询文档):

parser = argparse.ArgumentParser()#创建一个命令解析器的句柄
#注册一个命令解析器参数类型,其中lambda v: v.lower()=="true"
#是代表一个匿名函数的实现,主要判断获取到的参数v转换成小写后是否等于true
parser.register("type", "bool", lambda v: v.lower() == "true")
#这个接口主要是添加命令解析器命令。其中下面使用的type就是上面注册的类型(注意:bool 是带双引号的)
parser.add_argument(
  "--debug",
  type="bool",
  nargs="?",
  const=True,
  default=False,
  help="Use debugger to track down bad values during training")

#这个接口是获取命令行里面输入的命令参数,并返回
FLAGS, unparsed = parser.parse_known_args()

下面是一个简单的例子:
python学习 之 argparse_第1张图片

输入参数和结果:
python学习 之 argparse_第2张图片:

如果还有疑问,大家可以一起交流下,谢谢

你可能感兴趣的:(tensorflow)