學習WaveNet
代碼時,遇到大量的argparse
的使用,那麼這個包究竟是什麼用處呢?
argparse
是python自帶的命令行參數解析包,可以用來方便地讀取命令行參數。
import argparse
# 生成一個parse對象,也叫參數解析器
parser = argparse.ArgumentParser(description="描述該解析器是做什麼的,該參數可以爲空")
# 添加信息,以下參數分別對應:變量名,別名,類型,默認值,描述信息
parser.add_argument('--data','-da', type=str, default='data/METR-LA', help='data path')
# 將以上信息以key-value的形式存入arg字典中
args = parser.parse_args()
# 接下來就可以直接調用其中的參數了
print(args.data)
當'-'
和'--'
同時出現的時候,系統默認後者爲參數名,前者不是,但是在命令行輸入的時候沒有這個區分,接下來就是打印參數信息了。
python parse_test.py -data 'datapath'
:在命令行調用
python parse_test.py -h
:可以查看幫助文檔
add_argument()
參數說明:
-
default='XiaoMing'
:變量的默認值 -
required=True
:表示運行時,該參數必須設置具體的值 -
type=int/bool
:設置變量類型 -
choices=['alexnet','vgg']
:設置該變量的取值,只能從choices
給定的值中選擇 -
help='description'
:變量的描述信息 -
dest='--name'
:可以用-name
,--name
爲變量命名 -
nargs='N/?/*/+'
:表示傳入的參數數量,分別代表:絕對個數N;0/1個參數;0/所有參數;所有並至少一個參數 -
action=store_true
:表示一個開關,如果不傳該值,就是default;如果執行命令時直接添加參數名,會將默認值改爲相反的。看例子吧:parser.add_argument('--gcn_bool', action='store_true', help='whether to add graph convolution layer')
python test.py
:gcn_bool
=Falsepython test.py --gcn_bool
:gcn_bool
=True
參考:
http://vra.github.io/2017/12/02/argparse-usage/
https://docs.python.org/3/library/argparse.html