python模块-argparser

Python模块-argparse

1 简介

  • 从命令行读取参数(argument)的python内置模块

2 基本使用

import argparse
# 导入模块

parser = argparse.ArgumentParser()
# 实例化

'''
argparse.Argument常用参数:
- prog -- The name of the program (default: sys.argv[0])
- description -- A description of what the program does
- epilog -- Text following the argument descriptions
- parents -- Parsers whose arguments should be copied into this one
- prefix_chars -- Characters that prefix optional arguments
- argument_default -- The default value for all arguments
'''

parser.add_argument(default = 'Unknown',
                    type = int,
                    required = True,
                    choices = range(120),
                    help = 'The current age by 2020'
                    '--age')
# 添加参数

'''
add_argument常用参数:
- default -- 命令行无参数输入时的默认值
- required -- True/False, 该参数是否必要
- type -- 参数类型,默认str
- choices -- 参数值只能在一定范围内选择
- help -- 参数的说明信息,在命令行加-h或--help参数运行该命令
- dest -- 设置变量名,默认变量名为-或--后字符串
- nargs -- 设置参数个数,int; '?':0或1个参数; '*':0或所有参数; '+':所有且至少一个参数
'''

args = parser.parse_args()
# 调用parse_args方法,返回args <class 'argparse.Namespace'>

age = args.age
# args调出添加的参数

3 示例(定义神经网络参数)

import argparse

from tensorflow.keras import Model
from tensorflow.keras.layers import Input,Dense,Dropout


parser = argparse.ArgumentParser()

# 网络定义参数
parser.add_argument('--input_dim', type = int, required = True)
parser.add_argument('--output_dim', type = int, required = True)
parser.add_argument('--layer1_dim', default = 32, type = int, required = True)
parser.add_argument('--layer1_dim', default = 64, type = int, required = True)
parser.add_argument('--activation', choices = ['sigmoid','tanh','relu'])
parser.add_argument('--dropout_rate', default = 0.5, type = float)
parser.add_argument('--loss', default = 'mse', choices = ['mse','mae'])

# 网络训练参数
parser.add_argument('--optimizer', default = 'adam', choices = ['adam','SGD'], required = True)
parser.add_argument('--metrics', choices = ['mae','msle'])
parser.add_argument('--batch_size', default = 1, type = int)
parser.add_argument('--epochs', default = 5, type = int)
parser.add_argument('--val_split', default = 0, type = float, choices = [0.1,0.2,0.3])
parser.add_argument('--train_verbosity', default = 1, type = int, choices = [0,1,2])

args = parser.parse_args()


def build_and_train_mlp(X_train, y_train, args):
    x_in = Input(shape=(args.input_dim, ))
    h = Dense(units=args.layer1_dim, activation=args.activation)(x_in)
    h = Dropout(rate=args.dropout_rate)(h)
    h = Dense(units=args.layer2_dim, activation=args.activation)(h)
    h = Dropout(rate=args.dropout_rate)(h)
    x_out = Dense(units=args.output_dim, activation=args.activation)(h)

    MLP = Model(x_in, x_out)
    MLP.compile(loss=args.loss,
                optimizer=args.optimizer,
                metrics=[args.metrics])

    hist = MLP.fit(X_train,
                   y_train,
                   batch_size=args.batch_size,
                   epochs=args.epochs,
                   validation_split=args.val_split,
                   verbose=args.train_verbosity)
    
    return MLP, hist

MLP, train_hist = build_and_train_mlp(X_train, y_train, args)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值