一、数据集准备
(1)如果使用一个公开的Benchmark,要先阅读该数据集的原始描述和相关论文,清晰其数据格式、划分方式、构成,如下问题:
- 该数据集是如何划分的?训练集、验证集、测试集的比例是多少?
- 该数据集中影像/视频/内容的数量、分辨率、幅面范围、时间范围是什么?在现有方法进行实验的时候是否需要裁剪影像?裁剪方式和设置具体怎样(窗口size、gap等)?
- 该数据集常用的评估指标是什么?在做实验之前最好要先完成指标评估的代码。
(2)如果使用自己收集的数据集,则需要注意:
- 目前相同领域中类似的数据集是如何划分的?自己的数据集最好保持一致;
- 交代清楚自己数据集的各项具体参数,以及实验时对原始数据如何进行处理。
二、方法设计
- 目前相同领域中有哪些SOTA方法?它们具体研究的是该任务场景中哪些问题?
- 我的方法要解决的是什么问题?和我解决同一问题的SOTA方法我是否需要全部拿来进行对比?
- 为了验证我的方法是有效的,在与其他SOTA方法进行对比时,现有的评价指标是否能充分说明自己方法的有效性?(如果你的方法侧重推理速度,那么FPS等指标是有必要的;如果你的方法侧重轻量级和低计算量,那么模型大小、FLOPS等指标是有必要的)
- 我的消融实验设计是否充分合理?能否在公平的前提下证明我提出方法的各个模块的有效性?
- 我的方法出发点是否合理?现有方法中与我最相似的方法是什么?
- 我的方法能否拓展到其他数据集/场景/任务中去?
三、实验记录
- 超参数(关键实验变量)
- 训练超参数(train.py):优化器的选择及其超参数(train.py)、batch_size、epoch_num等
- 数据集的选择及其处理(dataset.py)
- 超参数的搜索/遍历方案(实验分组)。可以使用nni等auto-ml工具。
- 实验数据
- 需要记录的实验数据
- 需要关注的指标
- 数据的输出路径
- 实验环境
- 实验结果(what?)
- 各个分组的结果展示
- 记录数据(优化曲线)
- 计算关键指标(最终test acc等)
- 记录数据的保存路径
- summary 阶段性总结(why?分析结果、总结)
从模型设计、实验设计、结果等方面进行归纳与总结,得出阶段性研究结论。 - summary 阶段性总结(why?分析结果、总结)
从模型设计、实验设计、结果等方面进行归纳与总结,得出阶段性研究结论。 - 结果分析:组间对比、与预期结果进行对比。
- 总结:
- 成功or失败?失败与异常结果的可能原因。通过查阅文献,回顾实验过程等,从模型设计、代码实现等分析:失败或异常的原因;提出新的可能和假设。
- 值得关注的性质(在原本实验目的之外的)