argparse ialah pakej penghuraian parameter baris perintah untuk Python penggunaan utama adalah dalam Masukkan parameter yang anda ingin ubah suai pada baris arahan.
import argparse def get_parser(): # argparse.ArgumentParser生成argparse对象 description为描述信息,当在命令行输入需要显示帮助信息时,会显示 parser = argparse.ArgumentParser(description="pytorch unet training") # 路径参数设置 help为参数的帮助信息 parser.add_argument("--data_path", default="./", help="DRIVE root") # 预测类别数量 type如果不指定需要输入的是str类型 parser.add_argument("--num_classes", default=1, type=int) # 指定设备使用 parser.add_argument("--device", default="cuda", help="training device") # 指定batch size大小 "-b", "--batch_size"表示两个都可以在命令行使用 parser.add_argument("-b", "--batch_size", default=4, type=int) return parser if __name__ =='__main__': parser = get_parser() args = parser.parse_args() print(args)
Seperti yang dinyatakan di atas, get_parser() ialah beberapa kaedah penggunaan yang diperkenalkan dalam artikel ini Fail python ini dipanggil python_argparse_test1.py, di mana
parser = argparse.ArgumentParser(description="pytorch unet training") digunakan untuk mencipta objek parser
add_argument() digunakan untuk menambah parameter
args = parse_args () dalam parser.parse_args() Dapatkan parameter yang dihuraikan
Apabila python python_argparse_test1.py dimasukkan pada baris arahan, cetak parameter yang diperolehi oleh args dan dapatkan. :
Namespace(batch_size=4 , data_path='./', device='cuda', num_classes=1)
Menunjukkan senarai parameter yang dihuraikan oleh penghurai parameter ini
Masukkan python python_argparse_test1.py -h atau python python_argparse_test1.py --help untuk memaparkan maklumat, penggunaan menunjukkan penggunaannya, latihan pytorch unet ialah penerangan semasa mencipta objek dan di bawah ialah maklumat dan penggunaan setiap parameter
import argparse def get_parser(): # argparse.ArgumentParser生成argparse对象 description为描述信息,当在命令行输入需要显示帮助信息时,会显示 parser = argparse.ArgumentParser(description="pytorch unet training") # 路径参数设置 help为参数的帮助信息 default为默认参数 parser.add_argument("--data_path", default="./", help="DRIVE root") # 预测类别数量 type如果不指定需要输入的是str类型 parser.add_argument("--num_classes", default=1, type=int) # 指定设备使用 parser.add_argument("--device", default="cuda", help="training device") # 指定batch size大小 "-b", "--batch_size"表示两个都可以在命令行使用 parser.add_argument("-b", "--batch_size", default=4, type=int) return parser if __name__ =='__main__': parser = get_parser() args = parser.parse_args() print("data_path: ",args.data_path) print("num_classes: ", args.num_classes)
Input baris arahan: python python_argparse_test1.py -- data_path Desktop --num_classer 4, hasilnya adalah seperti berikut:
data_path: Desktop
num_classes: 4
Anda boleh melihat bahawa parameter telah diubah suai melalui baris arahan
if __name__ =='__main__': parser = get_parser() args = parser.parse_args() print("-b: ",args.b) print("--batch_size: ", args.batch_size)
Masukkan python python_argparse_test1.py -b 10 --batch_size 20 pada baris arahan, dan ralat akan dilaporkan :
Ini kerana apabila '_' dan ' Apabila __' wujud pada masa yang sama, sistem lalai kepada nama parameter
kod di atas kepada:
if __name__ =='__main__': parser = get_parser() args = parser.parse_args() print("--batch_size: ",args.batch_size)
tetapi baris arahan tidak akan terjejas Teruskan melaksanakan perintah python python_argparse_test1.py -b 10 Dapatkan:
--batch_size: 10
jenis akan memaksa aksara baris arahan input ke dalam jenis jenis
if __name__ =='__main__': parser = get_parser() args = parser.parse_args() print("--batch_size type: ",type(args.batch_size))
Input baris arahan: python python_argparse_test1.py --batch_size '10' mendapat:
--batch_size type:
parser.add_argument("--num_classes", default=1, type=int, required=True)
Jika anda memasukkan perintah python python_argparse_test1.py
ini akan melaporkan ralat yang menunjukkan bahawa parameter memang diperlukan
python_argparse_test1.py: ralat: argumen berikut diperlukan: --num_classes
parser.add_argument('-arch', required=True, choices=['alexnet', 'vgg'])
Jika anda menjalankan arahan: python python_argparse_test1.py -arch cnn
Ini akan melaporkan ralat
python_argparse_test1. py: ralat: hujah -arch: pilihan tidak sah: 'cnn' (pilih daripada 'alexnet', 'vgg')
Atas ialah kandungan terperinci Menggunakan Python argparse: Cara mengendalikan hujah baris arahan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!