閱讀論文的時候遇到了argparse模塊,簡單介紹一下它的作用和用法,以便日后學(xué)習(xí)。
argparse模塊是python的一個內(nèi)置模塊,是用來解析命令行參數(shù)的,即傳遞參數(shù)用的。
在使用它的時候可以簡單歸納為以下四個命令:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument()
opt = parser.parse_args()
第一個為導(dǎo)入argparse包;
第二個創(chuàng)建一個ArgumentParser對象,ArgumentParser對象包含將命令行解析成 Python 數(shù)據(jù)類型所需的全部信息;
第三個是通過調(diào)用 add_argument()方法添加參數(shù);
第四個是通過parse_args()方法解析參數(shù).
我們通過下面簡單的例子來看看argoarse該怎能用,add_argument()傳入的第一個參數(shù)是參數(shù)名,一般要在參數(shù)名前加一個--,表明該參數(shù)是可選參數(shù),如果后面要使用該參數(shù),直接調(diào)用args.參數(shù)名即可。
#-*- coding: UTF-8 -*-
import argparse #步驟一
def parse_args():
parser = argparse.ArgumentParser(description="parameters") #步驟二
parser.add_argument("--n_epochs", type=int, default=200, help="number of epochs of training") #步驟三
parser.add_argument("--batch_size", type=int, default=64, help="size of the batches") #步驟三
parser.add_argument("--lr", type=float, default=0.0002, help="adam: learning rate") #步驟三
args = parser.parse_args() #步驟四
return args
if __name__ == '__main__':
args = parse_args()
print(args)
print(args.batch_size)
輸出結(jié)果為:
Namespace(batch_size=64, lr=0.0002, n_epochs=200)
64
使用argparse模塊的好處就是我們在運行該文件時不需要打開文件修改參數(shù),直接在terminal進行修改就行。
例如將上述代碼保存并命名為1.py,我們需要修改學(xué)習(xí)率將它改為0.2,則在terminal中的操作如下:
python 1.py --lr 0.2
輸出結(jié)果為:
Namespace(n_epochs=200, batch_size=64, lr=0.2)
64
可以看到學(xué)習(xí)率已經(jīng)改為了0.2。
Reference:
argparse --- 命令行選項、參數(shù)和子命令解析器