因为我平时做自然语言处理任务的时候感觉很乱,所以根据自己平时的学习自己做了一个总结,可能不适合所有的人,但是比较适合我自己.

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.通用框架模板

因为在平时做自然语言处理任务的时候,很多代码都是重复的,所以我就想做一个通用的框架,把重复的代码全部封装好,这样下次写代码的时候就不用再重新构建了,直接使用现成的代码就可以了,我们只要修改模型和参数等一些关键代码就好了,这样可以节省很多时间。
这个模块下次补充。