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()
如果还有疑问,大家可以一起交流下,谢谢