• 自然语言处理任务的开发流程


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

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

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

  • 相关阅读:
    QT作业三
    QSpace Pro for Mac(多面板文件管理器)
    【Linux进行时】环境变量and进程优先级
    python学习笔记之word文档提取
    Spring结合自定义注解实现 AOP 切面功能【详解】
    qpoases解MPC控制
    ESP32网络开发实例-BME280传感器数据保存到InfluxDB时序数据库
    鉴源论坛丨信号基础设备概述
    【Matlab】数值微积分与方程求解
    git ssl证书问题无法获取安全证书
  • 原文地址:https://blog.csdn.net/qq_35653657/article/details/127093128