模塊argparse是python標准庫中推薦的命令行解析模塊
簡明使用步驟:
1:import argparse 首先導入該模塊 2:parser = argparse.ArgumentParser() 然后創建一個解析對象 3:parser.add_argument() 然后向該對象中添加你要關注的命令行參數和選項,每一個add_argument方法對應一個你要關注的參數或選項 4:parser.parse_args() 最后調用parse_args()方法進行解析,解析成功之后即可使用
以下是fast-rcnn代碼中train_net的使用:
def parse_args(): """ Parse input arguments """ parser = argparse.ArgumentParser(description='Train a Fast R-CNN network') parser.add_argument('--gpu', dest='gpu_id', help='GPU device id to use [0]', default=0, type=int) parser.add_argument('--solver', dest='solver', help='solver prototxt', default=None, type=str) parser.add_argument('--iters', dest='max_iters', help='number of iterations to train', default=40000, type=int) parser.add_argument('--weights', dest='pretrained_model', help='initialize with pretrained model weights', default=None, type=str) parser.add_argument('--cfg', dest='cfg_file', help='optional config file', default=None, type=str) parser.add_argument('--imdb', dest='imdb_name', help='dataset to train on', default='voc_2007_trainval', type=str) parser.add_argument('--rand', dest='randomize', help='randomize (do not use a fixed seed)', action='store_true') parser.add_argument('--set', dest='set_cfgs', help='set config keys', default=None, nargs=argparse.REMAINDER) if len(sys.argv) == 1: parser.print_help() sys.exit(1) args = parser.parse_args() return args
這是沒加任何參數直接輸入的情況:
這和輸入python train_net.py -h是一樣的效果,因為原代碼中有這樣一段代碼:
if len(sys.argv) == 1: parser.print_help() sys.exit(1)