Pytorch中argparse的作用以及Python中 sys.argv[]、python3相关使用方法总结

一、使用argparse在终端运行PyTorch模型

 

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]
 

四、限制使用哪个GPU

os.environ["CUDA_VISIBLE_DEVICES"] = "1"

 

五、Python中 sys.argv[]的用法简明解释:

      https:// chinaopen.ai

        Sys.argv[ ]其实就是一个列表,里边的项为用户输入的参数,关键就是要明白这参数是从程序外部输入的,而非代码本身的什么地方,要想看到它的效果就应该将程序保存了,从外部来运行程序并给出参数。

 

六、Python3 从入门到开车

https:// chinaopen.ai  整理的很赞!

你可能感兴趣的:(机器学习-目标检测)