argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块。argparse模块的作用是用于解析命令行参数. https://blog.csdn.net/Sebastien23/article/details/80644660
1:import argparse
2:parser = argparse.ArgumentParser()
3:parser.add_argument()
4:parser.parse_args()
解释:首先导入该模块;然后创建一个解析对象;然后向该对象中添加你要关注的命令行参数和选项,每一个add_argument方法对应一个你要关注的参数或选项;最后调用parse_args()方法进行解析;解析成功之后即可使用.
方法add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
其中:
name or flags:命令行参数名或者选项,如上面的address或者-p,--port.其中命令行参数如果没给定,且没有设置defualt,则出错。但是如果是选项的话,则设置为None
nargs:命令行参数的个数,一般使用通配符表示,其中,'?'表示只用一个,'*'表示0到多个,'+'表示至少一个
default:默认值
type:参数的类型,默认是字符串string类型,还有float、int等类型
help:和ArgumentParser方法中的参数作用相似,出现的场合也一致
(原文:https://blog.csdn.net/zxrttcsdn/article/details/79851112 )
import argparse#必备
parser = argparse.ArgumentParser(description='PyTorch ImageNet Training')#必备
parser.add_argument('data', metavar='DIR',
help='path to dataset')#
parser.add_argument('-a', '--arch', metavar='ARCH', default='resnet18',
choices=model_names,
help='model architecture: ' +
' | '.join(model_names) +
' (default: resnet18)')
parser.add_argument('-j', '--workers', default=4, type=int, metavar='N',
help='number of data loading workers (default: 4)')
parser.add_argument('--epochs', default=90, type=int, metavar='N',
help='number of total epochs to run')
parser.add_argument('--lr', '--learning-rate', default=0.1, type=float,
metavar='LR', help='initial learning rate')
args = parser.parse_args()#必备
traindir = os.path.join(args.data, 'train')
valdir = os.path.join(args.data, 'val')###
optimizer = torch.optim.SGD(model.parameters(), args.lr,#
momentum=args.momentum,
weight_decay=args.weight_decay)
执行文件:
python main.py -a alexnet --lr 0.01 [imagenet-folder with train and val folders]
os.environ["CUDA_VISIBLE_DEVICES"] = "1"
https:// chinaopen.ai
Sys.argv[ ]其实就是一个列表,里边的项为用户输入的参数,关键就是要明白这参数是从程序外部输入的,而非代码本身的什么地方,要想看到它的效果就应该将程序保存了,从外部来运行程序并给出参数。
https:// chinaopen.ai 整理的很赞!