Pytorch模块-argparse

Pytorch模块-argparse

Pytorch模块-argparse

1)命令行解释器(CUDA) 
      使用argparse 模块定义解析命令行参数,命令 行参数其实也是应用在程序中的参数,只是为了更方便他人使用程序而设置。 
      例如在工程中,文件中有很多参数,自己使用时可以打开文件定义修改,但是让别人使用时,这样一个个打开文件去修改显得太麻烦,argparse模块将所需更改的参数设置在命令行中,用户使用,便不用打开所在文件夹才能更改参数了。

import argparse
import torch

parser = argparse.ArgumentParser(description='PyTorch Example')
parser.add_argument('--disable-cuda', action='store_true',
                    help='Disable CUDA')
args = parser.parse_args()
args.cuda = not args.disable_cuda and torch.cuda.is_available()

解析代码: 
1.创建parser 
首先,创建一个ArgumentParser对象。

parser = argparse.ArgumentParser(description='PyTorch Example')

ArgumentParser对象中保存着解析命令行参数所必需的信息。

2.添加参数 
通过调用add_argument()方法将命令行中的参数保存到ArgumentParser对象中。

parser.add_argument('--disable-cuda', action='store_true',
                    help='Disable CUDA')

后面再调用parse_args(),将会返回一个包含integers和accumulate两个属性的对象,integers是一个列表,而accumulate可以是sum()函数(如果指定了–sum)或者max()函数。

3.解析参数 
通过parse_args()方法解析参数,返回一个命名空间对象。

args = parser.parse_args()

如果在脚本中调用这个函数,parse_args()不会解析任何参数。ArgumentParser会从sys.argv中自动检测命令行参数。

4、cuda 
args.cuda = not args.disable_cuda and torch.cuda.is_available()

2)ArgumentParser方法 
argparse.ArgumentParser([description][, epilog][, prog] 
[, usage][, add_help][, argument_default][, parents] 
[, prefix_chars][,conflict_handler][, formatter_class])

创建一个ArgumentParser对象。每个参数都有其特殊含义,简单的介绍如下: 
•description:help参数之前显示的信息 
•epilog:help参数之后显示的信息。 
•add_help:给解析器添加-h/–help选项(默认为True) 
•argument_default:设置参数的默认值(默认为None) 
•parents:ArgumentParser对象组成列表,这些对象中的参数也要包含进来。 
•prefix_chars:可选参数之前的前缀(默认为-) 
•fromfile_prefix_chars:如果是从文件中读取参数,这个文件名参数的前缀(默认为None) 
•formatter_class:一个自定义帮助信息格式化输出的类 
•conflict_handler:通常不需要,定义了处理冲突选项的策略 
•prog:程序名(默认为sys.argv[0]) 
•usage:程序的使用用例,默认情况下会自动生成。

待续

 

posted @ 2017-12-21 16:05  菜鸡一枚  阅读(925)  评论(0)    收藏  举报