argparse简单使用

Source
"""
Author: yida
Time is: 2021/11/27 19:49 
this Code: 学习使用argparse
使用方法: 在"命令行"进入该python文件目录:[cd 路径] 或者直接使用绝对路径:[python /***/***/***/文件名.py]
如:
 1.调用该文件[python 文件名.py]
 2.查看参数信息, 默认输出help信息[python 文件名.py -h]
 3.修改指定参数[python 文件名.py --batch_size=200 --class_num=20 --shuffle]
"""

import argparse

if __name__ == '__main__':
    parser = argparse.ArgumentParser()

    # 设置路径
    parser.add_argument('--train_path', type=str, default='./soil/train', help='训练集路径')
    parser.add_argument('--test_path', type=str, default='./soil/test', help='测试集路径')
    parser.add_argument('--model_path', type=str, default='./model', help='存储模型路径')
    # 设置超参数
    parser.add_argument('--train_times', type=int, default=5, help='重复训练网络times次')
    parser.add_argument('--batch_size', type=int, default=64, help='batch_size')
    parser.add_argument('--num_workers', type=int, default=0, help='num_worker')
    parser.add_argument('--epoches', type=int, default=100, help='训练次数')
    parser.add_argument('--class_num', type=int, default=9, help='分类数')
    parser.add_argument('--learning_rate', type=float, default=1e-3, help='优化器学习率')
    # 启动开关
    parser.add_argument('--shuffle', action='store_true', default=True,
                        help='是否打乱数据集, 默认为True, 调用--shuffle开启为False')

    opt = parser.parse_args()  # 实例化
    # 使用opt.属性进行访问, 如:opt.batch_size, 值为预先设定的默认值
    print("训练集路径为:", opt.train_path)
    print("测试集路径为:", opt.test_path)
    print("模型存储到:", opt.model_path)

    print("Batch大小:", opt.batch_size)
    print("num_workers:", opt.num_workers)
    print("训练次数为:", opt.epoches)
    print("分类数为:", opt.class_num)
    print("学习率为", opt.learning_rate)
    print("是否打乱数据集:", opt.shuffle)

运行代码结果

在这里插入图片描述

进入终端调用:

在这里插入图片描述在这里插入图片描述

查看help信息:

在这里插入图片描述

修改指定参数:

在这里插入图片描述
优势:
1.进阶写法,在服务器上运行代码训练模型的时候,不需要进入train.py进行修改,直接【python train.py --batch_size=100】修改指定参数
2.将全部参数集中写在main函数,方便查看和修改
3.继续学习和使用,要是能发现其它优势会继续总结和分析


【推荐阅读】

服务器上训练模型并运行代码:感受使用argparse的优势