Pytorch學習-如何接受命令行參數argparse模塊

Pytorch學習-如何接受命令行參數argparse模塊

命令行解釋器argparse模塊

使用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)導入argparse模塊

import argparse

(2)創建ArgumentParser對象

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

ArgumentParser對象中保存着解析命令行參數所必需的信息,description中描述命令行參數的介紹。

(3)添加參數

通過調用add_argument()方法將命令行中的參數保存到ArgumentParser對象中。

parser.add_argument('--disable-cuda', action='store_true',
 help='Disable CUDA')
parser.add_argument('--dataroot', type=str,default='/usr/dataset',
 help='the path of the dataset')

後面再調用parse_args(),將會返回一個包含integers和accumulate兩個屬性的對象,integers是一個列表,而accumulate可以是sum()函數(如果指定了–sum)或者max()函數。

(4)解析參數

通過parse_args()方法解析參數,返回一個命名空間對象。

args = parser.parse_args()

如果在腳本中調用這個函數,parse_args()不會解析任何參數。ArgumentParser會從sys.argv中自動檢測命令行參數。

(5)使用命令行參數args.XX

python XX.py --disable-cuda --dataroot '/usr/dataset/MNIST'

代碼內調用:

args.cuda ==True
print(args.dataroot)

大家瞭解了嗎?瞭解了請給點個贊哦~Thanks♪(・ω・)ノ

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章