参考网址:
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 类的一个方法,用于定义命令行接口中可以接受的参数。`
-
name_or_flags: 这个参数是必需的,可以是字符串或字符串的列表。它定义了命令行参数的名字或者标志(flag)。例如:'--verbose'或-v表示长选项或短选项。'dest'可以指定参数的目标名称(存储到命名空间的属性名),如果不指定,默认会根据提供的名字生成。
-
action: 定义了参数触发的动作类型。默认是'store',意味着参数值会被存储。其他常见的动作包括:'store_const': 存储一个常数值,而不是参数值。'store_true'/'store_false': 分别用于布尔标志,没有参数值,仅表示真或假。'append': 将参数值添加到列表中,如果参数被多次提供,则会收集所有值。'count': 计数参数被提供了多少次。
-
nargs: 定义了应该从命令行读取多少个参数值。例如:'?': 可选参数,可以有零个或一个值。'*': 零个或多个值。'+': 一个或多个值。N: 具体的数值,表示参数需要 N 个值。
-
const: 当action或nargs需要一个常数值时使用,比如'store_const'或'append_const'。 -
default: 如果参数没有在命令行中给出,那么将使用此默认值。 -
type: 参数值的数据类型,例如int,float,str或者自定义的类型函数,如上面提到的str2bool。 -
choices: 限制参数值的范围,只允许特定的值。 -
required: 布尔值,指示参数是否必须出现在命令行中。 -
help: 提供给用户的帮助信息,描述参数的作用。 -
metavar: 在帮助信息中显示的参数值的名称,可以用来代替参数名称。 -
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)
打印结果




















