当我运行以下代码时:
def read_args():
parser = default_parser()
parser.add_argument('--tensorboard-dir', type=str, default='/tmp/cifar10/tensorboard')
parser.add_argument('-N', type=int, default=50000, help="Use N training examples.")
return parser.parse_args()
def main():
flags = readargs()
我有以下错误输出:
以下参数是必需的:--name
但是,当我添加 --name 参数时:
def read_args():
parser = default_parser()
parser.add_argument('--name', type=str, default='cifar10test')
parser.add_argument('--tensorboard-dir', type=str, default='/tmp/cifar10/tensorboard')
parser.add_argument('-N', type=int, default=50000, help="Use N training examples.")
return parser.parse_args()
def main():
flags = readargs()
也在制造问题。
有任何想法吗?
似乎default_parser
包含一个--name
必需的参数。您在第二个示例中所做的是两次定义参数 -default_parser
一次在您的程序中。相反,您应该--name
在从命令行调用程序时传递参数。
例子:
python cifar.py -N=1200 --tensorboard-dir=file.txt --name=cool_name
或者,您可以删除default_parser
并构建自己的 ArgumentParser:
`parser = argparse.ArgumentParser()`
完整的工作演示:
import argparse
def read_args():
parser = argparse.ArgumentParser()
parser.add_argument('--tensorboard-dir', type=str,
default='/tmp/cifar10/tensorboard')
parser.add_argument('-N', type=int, default=50000,
help="Use N training examples.")
return parser.parse_args()
def main():
flags = vars(read_args())
# You can access your args as a dictionary
for key in flags:
print("{} is {}".format(key, flags[key]))
main()
解析器返回一个Namespace对象,但我们可以使用vars(Namespace)
. 然后,您可以通过访问字典来获取您的参数,例如,flags['N']
. 请注意,它tensorboard-dir
会出现tensorboard_dir
在您的 Python 程序中,以避免出现减法运算符的问题。
从命令行调用它(我正在使用 Bash):
python cifar.py -N=1200 --tensorboard-dir=file.txt
输出:
tensorboard_dir is file.txt
N is 1200
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句