栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

action=‘store

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

action=‘store

1.环境:在pycharm中运行; 1.1不带默认值default

结论:不带默认值default的情况下, action的属性值结果和变量值结果是相反的
例如:
当 action='store_true'

import argparse
parser = argparse.ArgumentParser()  # 生成一个设置参数的对象
parser.add_argument("--do_train", action='store_true', help="Whether to run training.")
args = parser.parse_args()
print(args.do_train) # False

当action='store_false'

import argparse
parser = argparse.ArgumentParser()  # 生成一个设置参数的对象
parser.add_argument("--do_train", action='store_false', help="Whether to run training.")
args = parser.parse_args()
print(args.do_train) # True

action的功能相当于是一个开关
下面完成测试代码

import argparse

parser = argparse.ArgumentParser()  # 生成一个设置参数的对象
parser.add_argument("--do_train", action='store_true', help="Whether to run training.")
parser.add_argument("--do_eval", action='store_true', help="Whether to run eval on the dev/test set.")
parser.add_argument("--do_direct_eval", action='store_true',
                    help="Whether to run direct eval on the dev/test set.")

args = parser.parse_args()
print(args.do_train) # False
print(args.do_eval) # False
if args.do_train:
    """训练代码"""
    print("开始训练")
if args.do_eval:
    """验证代码"""
    print("开始验证")

运行结果:默认都不会执行

1.1.1执行训练部分代码

将 action='store_true', 改为 action='store_false'

import argparse

parser = argparse.ArgumentParser()  # 生成一个设置参数的对象
parser.add_argument("--do_train", action='store_false', help="Whether to run training.")
parser.add_argument("--do_eval", action='store_true', help="Whether to run eval on the dev/test set.")
parser.add_argument("--do_direct_eval", action='store_true',
                    help="Whether to run direct eval on the dev/test set.")

args = parser.parse_args()
print(args.do_train) # True
print(args.do_eval) # False
if args.do_train:
    """训练代码"""
    print("开始训练")
if args.do_eval:
    """验证代码"""
    print("开始验证")

输出结果:

1.1.2执行验证部分代码:

将 action=‘store_true’,改为 action=‘store_false’

import argparse

parser = argparse.ArgumentParser()  # 生成一个设置参数的对象
parser.add_argument("--do_train", action='store_true', help="Whether to run training.")
parser.add_argument("--do_eval", action='store_false', help="Whether to run eval on the dev/test set.")
parser.add_argument("--do_direct_eval", action='store_true',
                    help="Whether to run direct eval on the dev/test set.")

args = parser.parse_args()
print(args.do_train) # False
print(args.do_eval) # True
if args.do_train:
    """训练代码"""
    print("开始训练")
if args.do_eval:
    """验证代码"""
    print("开始验证")

运行结果:

1.2.带默认值default:

结论:变量结果与action的值无关, 相当于开关失效 , 默认值的结果就是变量的结果
例子:
当 action=‘store_true’, default=False

import argparse
parser = argparse.ArgumentParser()  # 生成一个设置参数的对象
parser.add_argument("--do_train", action='store_true',  default=False, help="Whether to run training.")
args = parser.parse_args()
print(args.do_train) # False

当 action=‘store_false’, default=False

import argparse
parser = argparse.ArgumentParser()  # 生成一个设置参数的对象
parser.add_argument("--do_train", action='store_false',  default=False, help="Whether to run training.")
args = parser.parse_args()
print(args.do_train) # False

说明此时action的属性值就没有用要主要看defaule的默认值

1.2.1测试代码
import argparse
parser = argparse.ArgumentParser()  # 生成一个设置参数的对象
parser.add_argument("--do_train", action='store_true',  default=False, help="Whether to run training.")
parser.add_argument("--do_eval", action='store_true', help="Whether to run eval on the dev/test set.")
parser.add_argument("--do_direct_eval", action='store_true',
                    help="Whether to run direct eval on the dev/test set.")

args = parser.parse_args()
print(args.do_train)
print(args.do_eval)
if args.do_train:
    """训练代码"""
    print("开始训练")
if args.do_eval:
    """验证代码"""
    print("开始验证")

运行结果

import argparse

parser = argparse.ArgumentParser()  # 生成一个设置参数的对象
parser.add_argument("--do_train", action='store_false',  default=False, help="Whether to run training.")
parser.add_argument("--do_eval", action='store_true', help="Whether to run eval on the dev/test set.")
parser.add_argument("--do_direct_eval", action='store_true',
                    help="Whether to run direct eval on the dev/test set.")

args = parser.parse_args()
print(args.do_train)
print(args.do_eval)
if args.do_train:
    """训练代码"""
    print("开始训练")
if args.do_eval:
    """验证代码"""
    print("开始验证")

运行结果:

1.3总结:在pycharm中运行 1.3.1.不带默认值default, 那么args.do_train的值的和action的属性值结果是相反的 1.3.2 带默认值default=False|True, 默认值的结果就是args.do_train的值为对应的False|True 2.环境: 在终端中运行 2.1不带默认值default:

测试代码

# Testaction.py
import argparse


parser = argparse.ArgumentParser()  # 生成一个设置参数的对象
parser.add_argument("--do_train", action='store_true',   help="Whether to run training.")
parser.add_argument("--do_eval", action='store_true', help="Whether to run eval on the dev/test set.")
parser.add_argument("--do_direct_eval", action='store_true',
                    help="Whether to run direct eval on the dev/test set.")

args = parser.parse_args()
print(args.do_train)
print(args.do_eval)
if args.do_train:
    """训练代码"""
    print("开始训练")
if args.do_eval:
    """验证代码"""
    print("开始验证")

输入命令:

python Testaction.py

运行如下代码:

运行结果:

如果想要开始训练代码则打开开关文件后面加–do_train:
输入命令:

python Testaction.py --do_train

运行结果:

同理可以打开验证模型的开关这里就不讲解了

2.1带默认值default: 结论: 直接运行则结果为默认值, 打开开关action则结果为action的结果值

测试代码:

# Testaction.py
import argparse


parser = argparse.ArgumentParser()  # 生成一个设置参数的对象
parser.add_argument("--do_train", action='store_true', default=False,    help="Whether to run training.")
parser.add_argument("--do_eval", action='store_true', help="Whether to run eval on the dev/test set.")
parser.add_argument("--do_direct_eval", action='store_true',
                    help="Whether to run direct eval on the dev/test set.")

args = parser.parse_args()
print(args.do_train)
print(args.do_eval)
if args.do_train:
    """训练代码"""
    print("开始训练")
if args.do_eval:
    """验证代码"""
    print("开始验证")

运行命令:(默认不训练)

python Testaction.py

运行结果:

运行命令:(打开开关)

python Testaction.py --do_train

运行结果:

相关博客:
https://blog.csdn.net/tsinghuahui/article/details/89279152
https://blog.csdn.net/LemonTree_Summer/article/details/80749359

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/822383.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号