模型评估启动脚本适配样例(argparse)
import argparse
import logging
import json
import stat
import os
DEFAULT_FLAGS = os.O_RDWR | os.O_CREAT
DEFAULT_MODES = stat.S_IWUSR | stat.S_IRUSR
# 模拟模型源码逻辑
def model_eval(args):
logging.info('%s', args.data_path) # 模型代码中可接收到对应参数
logging.info('%s', args.output_path)
logging.info('%s', args.model_config)
logging.info('%s', args.learning_rate)
eval_result = json.dumps({'评估结果': '待输出评估结果'})
eval_result_path = os.path.join(args.output_path, 'eval_result.json') # 此处必须以eval_result.json文件存储至指定输出路径,否则评估任务无结果返回,视为失败
with os.fdopen(os.open(eval_result_path, DEFAULT_FLAGS, DEFAULT_MODES), 'w') as file:
json.dump(eval_result, file)
# 用于argparse参数类型转换。
def str2bool(param):
return param.lower() == 'true'
if __name__ == '__main__':
parser = argparse.ArgumentParser()
# 必选适配项
parser.add_argument('-dp', '--data_path', type=str, required=True) # 数据集路径
parser.add_argument('-op', '--output_path', type=str, required=True) # 输出路径
parser.add_argument('-cp', '--ckpt_path', type=str, required=True) # 模型结果路径
# 模型配置文件中包含的配置项
parser.add_argument('-ep', '--eval_param', type=float, required=False)
parser.add_argument('-bp', '--bool_param', type=str2bool, required=False) # argparse不支持传入bool类型参数,需要在type中转换参数类型
# 模型脚本接收的参数集合
args = parser.parse_args()
model_eval(args)
对应模型配置文件的内容:
params: eval_param: 'your settings' bool_param: false
父主题: 模型适配样例