【python技巧】parser传入参数

参考网址:
https://lightning.ai/docs/pytorch/LTS/api/pytorch_lightning.utilities.argparse.html#pytorch_lightning.utilities.argparse.add_argparse_args

1. 简单传入参数.

parse_known_args()方法的作用就是把不在预设属性里的参数也返回,比如下面这个例子,
执行python test.py -t, 预设中只存在-n和-y,故而被保存在unkown1中.

import argparse
# from pytorch_lightning import Trainer
## 1.设置传入参数的属性
parser = argparse.ArgumentParser()
parser.add_argument(
        "-n",
        "--name",
        type=str,
        const=True,
        nargs="?",
        help="postfix for logdir",
    )
parser.add_argument(
        "-y",
        "--year",
        type=int,
        const=True,
        default="7",
        nargs="?",
        help="postfix for logdir",
    )
2. 解析
opt1, unknown1 = parser.parse_known_args()
print("opt1",opt1)
print("unkonwn1",unknown1)

打印结果
在这里插入图片描述

2. parser.add_argument

add_argument 方法是 argparse 模块中的 ArgumentParser 类的一个方法,用于定义命令行接口中可以接受的参数。`

  1. name_or_flags: 这个参数是必需的,可以是字符串或字符串的列表。它定义了命令行参数的名字或者标志(flag)。例如:

    • '--verbose'-v 表示长选项或短选项。
    • 'dest' 可以指定参数的目标名称(存储到命名空间的属性名),如果不指定,默认会根据提供的名字生成。
  2. action: 定义了参数触发的动作类型。默认是 'store',意味着参数值会被存储。其他常见的动作包括:

    • 'store_const': 存储一个常数值,而不是参数值。
    • 'store_true'/'store_false': 分别用于布尔标志,没有参数值,仅表示真或假。
    • 'append': 将参数值添加到列表中,如果参数被多次提供,则会收集所有值。
    • 'count': 计数参数被提供了多少次。
  3. nargs: 定义了应该从命令行读取多少个参数值。例如:

    • '?': 可选参数,可以有零个或一个值。
    • '*': 零个或多个值。
    • '+': 一个或多个值。
    • N: 具体的数值,表示参数需要 N 个值。
  4. const: 当 actionnargs 需要一个常数值时使用,比如 'store_const''append_const'

  5. default: 如果参数没有在命令行中给出,那么将使用此默认值。

  6. type: 参数值的数据类型,例如 int, float, str 或者自定义的类型函数,如上面提到的 str2bool

  7. choices: 限制参数值的范围,只允许特定的值。

  8. required: 布尔值,指示参数是否必须出现在命令行中。

  9. help: 提供给用户的帮助信息,描述参数的作用。

  10. metavar: 在帮助信息中显示的参数值的名称,可以用来代替参数名称。

  11. dest: 指定在解析后的命名空间中存储参数值的属性名称。

3. 使用Pytroch_Lightning 来增加参数属性

Pytroch_Lightning是一个更加方便更集成的深度学习训练框架,.
Trainer.add_argparse_args(parser)会像parser.add_argument一样添加属性,打印结果可证明.

import argparse
from pytorch_lightning import Trainer

parser = argparse.ArgumentParser()

parser.add_argument(
        "-y",
        "--year",
        type=int,
        const=True,
        default="7",
        nargs="?",
        help="postfix for logdir",
    )
parser = Trainer.add_argparse_args(parser)
opt2, unknown2 = parser.parse_known_args()
print("opt2",opt2)
print("unkown2",unknown2)

打印结果
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/781922.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024年信息系统项目管理师1批次上午客观题参考答案及解析(1)

1、新型基础设施建设是以新发展理念为引领,以()为驱动,以信息网络为基础,面向高质量发展需要,提供数字转型、智能升级、融合创新等服务的基础设施体系。 A.技术创新 B.人工智能 C.区块链 D&…

代码随想录算法训练营第二十七天|452. 用最少数量的箭引爆气球、435. 无重叠区间、763.划分字母区间

452. 用最少数量的箭引爆气球 如何使用最少的弓箭呢? 直觉上来看,貌似只射重叠最多的气球,用的弓箭一定最少,那么有没有当前重叠了三个气球,我射两个,留下一个和后面的一起射这样弓箭用的更少的情况呢&am…

STM32-输入捕获IC和编码器接口

本内容基于江协科技STM32视频学习之后整理而得。 文章目录 1. 输入捕获IC1.1 输入捕获IC简介1.2 频率测量1.3 输入捕获通道1.4 主从触发模式1.5 输入捕获基本结构1.6 PWMI基本结构 2. 输入捕获库函数及代码2.1 输入捕获库函数2.2 6-6 输入捕获模式测频率2.2.1 硬件连接2.2.2 硬…

曹操的五色棋布阵 - 工厂方法模式

定场诗 “兵无常势,水无常形,能因敌变化而取胜者,谓之神。” 在三国的战场上,兵法如棋,布阵如画。曹操的五色棋布阵,不正是今日软件设计中工厂方法模式的绝妙写照吗?让我们从这个神奇的布阵之…

MSPM0G3507——串口0从数据线传输变为IO口传输

默认的跳线帽时这样的,这样时是数据线传输 需要改成这样,即可用IO口进行数据传输

实验六 图像的傅立叶变换

一.实验目的 1了解图像变换的意义和手段; 2熟悉傅立叶变换的基本性质; 3熟练掌握FFT变换方法及应用; 4通过实验了解二维频谱的分布特点; 5通过本实验掌握利用MATLAB编程实现数字图像的傅立叶变换。 6评价人眼对图…

Mac 系统如何将搜狗输入法设置为默认输入法

Mac 系统默认将自带的ABC输入法作为默认输入法,很不方便中文输入,想设置搜狗输入法为默认输入法如何设置呢?具体步骤如下: 1、打开:系统设置——键盘——文字输入,点击设置 2、点击左下角的 3、选择 其他…

52-5 内网代理2 - LCX端口转发(不推荐使用LCX)

环境搭建: 本地开3台虚拟机:kali(必须)、windows2012与2008 (可换成其他windows虚拟机) kali - 网络配置成桥接模式 windows2012 - 设置两个网卡,NAT与桥接模式 注意:windows2012要关闭防火墙,要不然其他主机ping不通 关闭防火墙后再开启远程桌面连接 windwos20…

Java项目:基于SSM框架实现的德云社票务管理系统【ssm+B/S架构+源码+数据库+开题报告+毕业论文】

一、项目简介 本项目是一套基于SSM框架实现的德云社票务管理系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单、功…

Python 学习中什么是字典,如何操作字典?

什么是字典 字典(Dictionary)是Python中的一种内置数据结构,用于存储键值对(key-value pair)。字典的特点是通过键来快速查找值,键必须是唯一的,而值可以是任何数据类型。字典在其他编程语言中…

游戏AI的创造思路-技术基础-遗传算法

遗传算法,选对了遗传算子,那就是优秀的继承者,选错了,那就是传说在祸害遗千年~~~~~ 目录 1. 定义 2. 发展历史 3. 遗传算法的基本原理和流程 3.1. 基本原理 3.1.1.基本原理 3.1.2. 算法流程 3.1.3. 关键要素 3.2. 函数和方…

栈和队列---循环队列

1.循环队列的出现 (1)上面的这个就是一个普通的数据的入队和出队的过程我们正常情况下去实现这个入队和出队的过程,就是这个数据从这个队尾进入,从队头离开,但是这个加入的时候肯定是没有其他的问题的,直接…

为什么固定尺寸 AdSense 广告依旧会出现并非指定的尺寸广告?

经常在网站上投放谷歌 AdSense广告的站长应该都碰到过,明明投放的是固定尺寸的广告位里旧会出现并非指定尺寸的AdSense 广告,很诡异的感觉。其实这都是因为你的 AdSense 账号广告优化造成的,其中里面就包含了广告尺寸优化,只需要在…

盘点当下智能体应用开发的几种形态

现在多智能体系统开发的关注度越来越高了,不光在开发者的圈子热度很高,很多职场人士,甚至是小白也参与其中,因为现在的门槛越来越低了,尤其是,最近特别火的扣子(coze)和百度的appbui…

Sequelize 操作 MySQL 数据库

安装 npm install --save sequelize安装驱动程序: npm install --save mysql2连接到数据库 要连接到数据库,必须创建一个 Sequelize 实例. 这可以通过将连接参数分别传递到 Sequelize 构造函数或通过传递一个连接 URI 来完成: const {Sequelize} re…

【Java12】封装

封装(Encapsulation)是面向对象的三大特征之一(另两个是继承和多态),指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象的内部信息,而是通过该类所提供的方法来实现对内部信息的…

[护网训练]原创应急响应靶机整理集合

前言 目前已经出了很多应急响应靶机了,有意愿的时间,或者正在准备国护的师傅,可以尝试着做一做已知的应急响应靶机。 关于后期: 后期的应急响应会偏向拓扑化,不再是单单一台机器,也会慢慢完善整体制度。…

《昇思25天学习打卡营第14天|onereal》

第14天学习内容如下: Diffusion扩散模型 本文基于Hugging Face:The Annotated Diffusion Model一文翻译迁移而来,同时参考了由浅入深了解Diffusion Model一文。 本教程在Jupyter Notebook上成功运行。如您下载本文档为Python文件&#xff0c…

Zabbix 配置grafana对接

zabbix对接grafana简介 Zabbix与Grafana对接可以实现更加丰富和美观的数据可视化,可以利用Grafana强大的可视化功能来展示Zabbix收集的数据。 Grafana 本身是提供了Zabbix的对接插件,开箱即用,安装好了之后点击 enable 一下就能启用。然后就…

深度学习中的Channel,通道数是什么?

参考文章: 直观理解深度学习的卷积操作,超赞!-CSDN博客​​​​​​如何理解卷积神经网络中的通道(channel)_神经网络通道数-CSDN博客 深度学习-卷积神经网络—卷积操作详细介绍_深度卷积的作用-CSDN博客 正文&…