【深度学习实战(1)】如何使用argparse模块设置自己的训练参数

一、argparse模块用法

1、argparse是一个python模块,用途是:命令行选项、参数和子命令的解释。

2、argparse库下载:pip install argparse

3、使用步骤:

导入argparse模块,并创建解释器

添加所需参数

解析参数

二、代码

cpp 复制代码
import argparse


def add_common_arguments(parser):
    """Add common arguments for training and inference."""
    parser.add_argument('--save_best_weights',
                        default='model_data/best.pth',
                        help="save best weights name.")
    parser.add_argument('--phi', type=str, default='s')
    parser.add_argument('--num_classes', type=int, default=10)

def get_parser_for_training():
    """Return argument parser for training."""
    # -------------------------------------------#
    #   Step 1. 构造解析器 argparse.ArgumentParser()
    # -------------------------------------------#
    parser = argparse.ArgumentParser("Training args")
    # -------------------------------------------#
    #   Step 2. 添加参数 .add_argument()
    # -------------------------------------------#
    parser.add_argument('--train_path',default='/data/train',help="The location of dataset.")
    parser.add_argument('--sync_bn', type=bool,default=False,help='use SyncBatchNorm, only available in DDP mode')
    parser.add_argument('--Cuda', type=bool,default=True)
    parser.add_argument('--fp16', type=bool,default=False)
    parser.add_argument('--num_workers', type=int, default=8,help="Number of workers for data loading.")
    parser.add_argument('--Total_epoch', type=int, default=300,help='Total Epoch')
    parser.add_argument('--Batch_size', type=int, default=64,help='Batch_size')
    # -------------------------------------------#
    #   Step 2. 添加参数 .add_argument()
    # -------------------------------------------#
    add_common_arguments(parser)
    return parser


if __name__=='__main__':
    # -------------------------------------------#
    #   Step 3. 解析参数 .parse_args()
    # -------------------------------------------#
    train_parser = get_parser_for_training()
    train_args = train_parser.parse_args()
    print(train_args)
    # -------------------------------------------#
    #   training args
    # -------------------------------------------#
    print("training data path:",train_args.train_path)
    print("training batch size:",train_args.Batch_size)
    print("Cuda:",train_args.Cuda)
    # -------------------------------------------#
    #   common args
    # -------------------------------------------#
    print("num classes:",train_args.num_classes)
    print("phi:",train_args.phi)
    print("save model path:",train_args.save_best_weights)

运行结果

用命令行查看parser的所有参数选项

用命令行修改parser的特定参数

相关推荐
databook10 小时前
用SymPy自动因式分解:从面积拼图到代数恒等式
python·数学·动效
艳阳天_.10 小时前
星瀚弹框页面实现
java·前端·python
kernelcraft10 小时前
Boto3:Python 操作 AWS 的官方 SDK
开发语言·python·其他·aws
D3bugRealm10 小时前
cryptography:Python 开发者的加密标准库
开发语言·python·其他
HappyAcmen10 小时前
5.通义向量模型调用
python
渡之11 小时前
GRiM-Net 深度解析 | 无人机 GNSS 拒止场景下两阶段跨视角视觉定位框架
深度学习·算法·动态规划·无人机
python-码博士11 小时前
PyTorch 从零实现 Flow Matching:训练、采样、画图一条龙
人工智能·pytorch·python
王小王-12311 小时前
基于Python的车联网数据聚合与可视化分析平台设计与实现
python·车联网·新能源汽车·车联网聚合分析
叫我:松哥12 小时前
基于Flask框架的校园二手书籍交易平台,注重校园场景的特殊需求,通过学号认证保障用户真实性
后端·python·sqlite·flask·bootstrap
namexingyun12 小时前
开源前端生态如何成为 AI UI 生成的“燃料“:shadcn/ui、Tailwind CSS、Storybook 技术价值全解剖
java·前端·人工智能·python·ui·开源·ai编程