【奇技淫巧】Python批量训练模型

【问题描述】

毕业设计遇到一个问题:对多种气体回归。为了简化代码,数据导入已经封装成函数,只是需要手动修改气体种类,但每种气体都要单独训练一次,懒得每次训练完从床上爬起来改俩参数重新训练!!

【尝试】

程序里设置 for 循环,遍历多种气体——会爆内存(训练到第二个模型时电脑就开始卡,每步训练时间很长)

【解决方案】

使用 argparse 模块和 os.system() 方法

第一步丨调用 'argparse'

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--gas', type=str, default='funan', help='气体类型')
    arg = parser.parse_args()
    print(f'Starting Analysis: {arg.gas}!')
    run(arg.gas)

第二步丨格式化 run() 函数

除了正常传递参数外,使用格式化语句和字典变量,如:

# 格式化语句
train_data_path = f'./regression_data/{gas_name}/train/'

# 字典变量
gas_name_dict = {'funan':'呋喃'}
legend_title = f'{gas_name_dict[gas_name]}-模型测试'
ax.legend(titile='legend_title')

第三步丨自动化脚本

新建 auto_run.py ,使用 os.system()函数,搭配自定义命令行参数,实现自动运行

import os

if __name__ == "__main__":
    gas_list = ['funan', ...]
    for gas in gas_list:
        os.system(f'python cnn_regression.py --gas {gas}')

【总结】

目测可以达到期望效果,运行中没有卡顿出现,内存占用9.3GB/16GB(所用CNN参数量较小)

当然啦,如果你有更好的方法,欢迎评论~

os.system()用法:
https://www.cnblogs.com/cwp-bg/p/8465566.html
https://www.cnblogs.com/cangqinglang/p/12190939.html

argparse模块用法:
https://www.cnblogs.com/mastermao/p/15956913.html
https://docs.python.org/zh-cn/3/library/argparse.html

posted @ 2022-03-04 15:45  一一风和橘  阅读(655)  评论(0编辑  收藏  举报