主要观点总结
本文介绍了竞赛和深度学习通用项目的规范细节,包括代码框架的确定、命令行解析的定义、调参工具的选择以及减少深度学习模型随机性的方法。
关键观点总结
关键观点1: 代码框架的确定
根据任务选择合适的框架,如PyTorch Lightning或MMDection。遵守框架的默认目录结构,或创建适合自己的目录结构,包括general、layers和experiments等目录。
关键观点2: 命令行解析的重要性
虽然Notebook好用,但.py代码的实际运行和管理更加方便,因此命令行解析是关键。选择喜欢的参数解析器,在命令行中加入学习率、batch、seed等超参数。
关键观点3: 调参工具的选择
在调试和训练模型的过程中,需要多次训练,TensorBoard可以很好地管理实验日志。确定好学习率和batch size,选择合适的优化器。
关键观点4: 减少深度学习模型的随机性
模型是否可复现非常重要。把不同fold的次序存储到文件以减少随机性。保存好配置文件、模型权重、日志文件,以便进行实验对比。设置SEED来确保实验的一致性。
文章预览
每一场Kaggle比赛都一个项目,代码则需要按照规范进行整理。项目规范方便后续的沟通、迭代,非常关键。本文将对竞赛和深度学习通用项目的规范细节进行整理。 步骤1:确定代码框架 首先确定好具体任务,然后根据任务选择合适的框架,如 PyTorch Lightning 或 MMDection 。 如果框架有默认目录,则遵守。否则可以创建适合自己的目录,一般而言目录推荐如下: general :常见的训练过程、保存加载模型过程,与具体任务相关的代码。 layers :模型定义、损失函数等; experiments :具体任务的训练流程、数据读取和验证过程; general/ │ train.py │ task.py │ mutils.py layers/ experiments/ │ task1/ │ train.py │ task.py │ eval.py │ dataset.py │ task2/ │ train.py │ task.py │ eval.p
………………………………