文章来源 | 恒源云社区
原文地址 | 【炼丹必备】
原文作者 | 阿洲
对于炼丹新人来说,我总结了一些实用技巧清单,每个技巧都将为一个目标服务,每个目标的排名分先后。
首要目标,让程序成功跑起来
核心思想是为了减少debug时间
case 1: 从0写起
- 数据
- 检查数据维度
- 随机Plot数据看看
- 分好训练集,验证集,测试集,严防数据泄露(比如测试集中有的数据在训练集中出现)
- 确保数据封装过程不出错,比如忘了随机,出现类别不均衡等
- 精简数据集,只用少量的数据集
- 模型
- 使用最简模型或尽量精简目标模型
- 检查模型输入和输出
- 检查loss计算是否准确
case 2: 复现别人公开的项目
- 环境
- 选对架构版本
- 检查软件包版本
- 选对python版本
- 数据
- 定位数据读取的代码
- 检查数据存储读取路径
- 检查数据维度
- 随机Plot数据看看
- 训练
- 把epoch改成一个先
- 检查模型存储位置
- 测试
- 查看结果存储类型
- 检查实验结果存储位置
测试结果
- 实验结果设计,尽量存储比较底层的数据,比如一个分类问题,尽量去存储每个样本的预测标签和实际标签,而不是准确率,因为前者可以算出后者,以及其他分析指标,而后者则不能。
- 实验结果保存
- 检查路径
- 检查实验结果是否可覆盖,可修改
优化代码
- 代码模块化
- 注释
优化实验结果
这里只能指出大的方向,这个阶段给不了具体的指导了
- 数据
- 模型
- 损失函数
- 训练方式
- 超参