Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Menggunakan Python argparse: Cara mengendalikan hujah baris arahan

Menggunakan Python argparse: Cara mengendalikan hujah baris arahan

WBOY
WBOYke hadapan
2023-04-22 15:28:181163semak imbas

    1. Pengenalan

    argparse ialah pakej penghuraian parameter baris perintah untuk Python penggunaan utama adalah dalam Masukkan parameter yang anda ingin ubah suai pada baris arahan.

    2. Rangka kerja biasa untuk penggunaan argparse

    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

    1 Dapatkan senarai parameter

    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

    2. Dapatkan maklumat bantuan

    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

    Menggunakan Python argparse: Cara mengendalikan hujah baris arahan

    3 Ubah suai parameter pada baris arahan

    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

    4. Penggunaan '_' dan "__"

    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 :

    Menggunakan Python argparse: Cara mengendalikan hujah baris arahan

    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

    5. Penggunaan jenis

    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:

    6.required: use Untuk menunjukkan sama ada parameter ini perlu disediakan

    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

    7.parameter pemilihan pilihan

    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!

    Kenyataan:
    Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam