因为我平时做自然语言处理任务的时候感觉很乱,所以根据自己平时的学习自己做了一个总结,可能不适合所有的人,但是比较适合我自己.
1.开发流程
步骤:
- 第一步:准备数据
- 第二步:数据预处理
- 第三步:将文本转向量,数据加载
- 第五步:模型设计(分成两个步骤,调参的时候,直接修改参数文件就可以了)
- 第六步:训练方法设计
- 训练方法设计(这个方法中包含了验证方法和测试方法,训练是一个循环的过程,每训练一次就要验证一次,找最合适的参数,在最后测试一次,验证一下模型的泛化能力.)
- 验证方法设计
- 测试方法设计
- 第七步:写一个main方法,运行项目
- 设置模型是否加载GPU
- 设置随机种子
- 加载参数、模型、数据
- 模型训练
2.代码框架结构设计
因为python项目不像Java项目,没有一个规范化的开发架构,所以我自己设计的一个代码架构,这样我自己写代码的时候就能流程化进行。
- utils包:存放开发相关的工具
- data包:存放数据集
- data_process包:存放数据处理的类和方法
- data_loader包:存放数据加载的类(一般放一个dataset类文件,用于文本转向量,数据加载工作)
- modes包:存放相关的模型以及模型的参数
- trianer包:存放train.py,这个方法中封装了训练函数、验证函数、测试函数
- logs包:存放日志文件
- checkpoint包:保存模型
- main.py:启动项目
- Readme.md:一个markdown文件,我习惯于把一些相关的内容都写到这个markdown文件中,等到下次看到这个这个项目的时候就不会遗忘。
3.通用框架模板
因为在平时做自然语言处理任务的时候,很多代码都是重复的,所以我就想做一个通用的框架,把重复的代码全部封装好,这样下次写代码的时候就不用再重新构建了,直接使用现成的代码就可以了,我们只要修改模型和参数等一些关键代码就好了,这样可以节省很多时间。 这个模块下次补充。
|