【奇技淫巧】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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)