我正在尝试使用argparse从bash脚本中读入值列表。但是,它似乎只读取了1个值,而不是列表。
例如,在train.py中
parser = argparse.ArgumentParser(description='PyTorch ImageNet Training')
parser.add_argument('--lr', '--learning-rate', default=[0.1], type=float, nargs='+',
metavar='LR', help='initial learning rate', dest='lr')
args=parser.parse_args()我的bash脚本如下:
LR="1e-1 1e-2 1e-3 1e-4 1e-5 1e-6"
python train.py --lr=$LR在train.py中,打印(args.lr)仅输出1e-3。通过argparse读取值列表的正确方式是什么?
发布于 2020-06-03 11:54:41
尝试从参数中删除=,如下所示:
python train.py --lr $LR这将使--lr和来自$LR的每个值成为python脚本的单独参数。
发布于 2021-02-12 21:57:02
将整个参数放在双引号中,如下所示:
python train.py "--lr=$LR"应该可以在Windows,Linux,MacOS上工作。
https://stackoverflow.com/questions/62164290
复制相似问题