增量训练lightgbm模型,深度学习模型

2023-10-30

1. 机器学习-增量训练方法(机器学习-增量训练方法 - 知乎

包含:sklearn, lightgbm增量训练方法。

2. 深度学习模型增量训练

增量训练主要面临的问题:当增量训练时,主要解决的是新增加的训练样本中的新词问题。如果对新增加的新词不做index映射的话,会直接处理成OOV。

原词表有一份数据: old_word2id = {"OOV": 0, "I": 1, "AM": 2}

现在增量在训练的时候,有一条新的训练样本,例如: I LOVE CHINA, LOVE 和 CHINA 没有出现在 old_word2id 词表里,怎么将LOVE 和 CHINA添加进词表呢(这个好像只要更新词表即可)? 以及LOVE 和 CHINA相对应的emb怎么加进到 model的word_emb中呢?

我是用torch训练的深度模型,处理方式是:

# 1. 对新增的词语映射为新的index,即将映射词表变为:
"""
old_word2id = {"OOV": 0, "I": 1, "AM": 2}
"""

new_word2id = {"OOV": 0, "I": 1, "AM": 2, "LOVE": 3, "CHINA":4}



# 2. 为新增的词语赋予一个随机的初始embedding,即将底层词语embedding矩阵改为:
"""
# old_word_emb矩阵代表已经训练完成的 ”OOV“,”I“, ”AM“ 三个词的embedding
old_word_emb = np.array([[0.11, -0.21, 0.32, 0.51, 0.12], \
                         [-0.2, 1.039, 0.21, 0.42, 0.71], \
                         [0.24, 8.039, 1.91, 3.02, -0.2]
                        ])
"""

# new_word_emb矩阵的前3行代表已经训练完成的 ”OOV“,”I“, ”AM“ 三个词的embedding
# new_word_emb矩阵的后2行代表随机初始化的 ”LOVE“,”CHINA“ 两个词的embedding
new_word_emb = np.array([[0.11, -0.21, 0.32, 0.51, 0.12], \
                         [-0.2, 1.039, 0.21, 0.42, 0.71], \
                         [0.24, 8.039, 1.91, 3.02, -0.2], \
                         [0.24, 8.039, 1.91, 3.02, -0.2], \
                         [0.24, 8.039, 1.91, 3.02, -0.2], \
                         ])


# 3. 怎么将新的 new_word_emb 在要增量训练的模型中生效呢?

train_model = torch.load(old_train_model_path, map_location=torch.device('cpu'))

train_model.embedding.weight = torch.nn.Parameter(
        torch.tensor(np.array(new_word_emb), dtype=torch.float32), \
        requires_grad=True)

device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
train_model.to(device)

下面用新数据对train_model做正常的模型训练即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

增量训练lightgbm模型,深度学习模型 的相关文章

随机推荐

  • 图数据库实践系列 (二)--Neo4J空间数据存储

    上讲回顾 介绍了Neo4j的概念和安装 同时包括介绍了Git和Maven两个工具 本文会介绍Neo4j Spatial项目以及空间数据 矢量 的存储 1 Neo4j Spatial 简介 1 1Neo4j Spatial概念 Neo4j S
  • 【雷达原理】雷达信号级建模与仿真

    目录 前言 一 LFMCW信号概述 1 1 优点 1 2 缺点 二 LFMCW信号模型 2 1 发射信号模型 2 2 接收信号模型 2 3 信号混频 三 MATLAB仿真 3 1 仿真结果 3 2 代码 四 参考文献 前言 雷达信号形式多种
  • 怎么查ip地址 多种方法教学

    我们在使用电脑的时候 有时候需要查询自己电脑的ip地址 那么这时候很多人会束手无策 那么接下来 IP数据云小编就为大家介绍一下怎么去查询自己电脑的ip地址 供大家在实际生活的时候参考使用 一 通过网页进行查询 可以通过第三方平台进行查询 比
  • TypeScript的一些安装、转换、热更新等配置方法

    安装 首先得有node然后在文件目录中git bash 输入npm i g typescript 安装成功后输入tsc测试是否安装成功 ts转js 浏览器不认识ts需要将ts转换为js让浏览器进行编译 在当前目录下git bash输入 ts
  • STM32F4驱动4路VL53L0测距

    最近给朋友调试了STM32F407驱动VL53L0的激光测距 安装在机器人上的 遇到一些问题 这里发帖纪录一下 关于VL53L0的资料和代码在正点原子那里都有 但是正点原子只是驱动了一路VL53L0 很多问题都需要我们自己解决 一路的VL5
  • 【商城后台管理系统】项目初始化(UmiJS)

    目录 一 运行时配置 1 1 配置方式 1 2 常用配置项 1 3 关于运行时配置说明 二 使用Umi UI 2 1 Umi UI的特性 2 2 项目中安装Umi UI 2 3 使用Umi UI 三 Umi JS总结 3 1 路由状态管理
  • 串口DMA传输模式

    DMA传输模式 前言 一 DMA简介 一 DMA系统框图 二 DMA传输通道 三 DMA传输模式 1 外设与存储器之间 2 存储器与存储器之间 3 小结 二 使用DMA配置 1 打开USART1及DMA模式 2 开启串口中断 3 生成代码
  • 项目中的if else太多了,该怎么重构?

    if else 太多了 最近跟着公司的大佬开发了一款IM系统 类似QQ和微信哈 就是聊天软件 我们有一部分业务逻辑是这样的 if msgType 文本 dosomething else if msgType 图片 doshomething
  • 使用Sonar分析Golang代码

    为了保证项目代码质量 需要控制每个Pull Request的代码单元测试覆盖率 翻看了Sonar文档 发现Sonar是一款保证代码质量的工具 可以满足此类需求 下面就用一个Demo来体验一下Sonar的功能 安装SonarQube 以Doc
  • 学习渗透,刚刚入坑——————基础知识了解

    今天学的很少但还是写写吧 我大一咋就没觉悟提前学习 大一整整四个月的寒假就让我躺废了 简单的说说我学到的知识 渗透测试 基础知识了解一下吧 最近的瓜很多 吃的真爽 孩子真是个神奇的存在 有的人因此得到祝福 有的人直接被封杀 当然这都拖了乐坛
  • 搭建学校oj平台-后端创建比赛用户

    后端创建比赛用户 gitee仓库代码在文章尾部 Mysql新建competiton user表 create table competition user id int auto increment competition id int n
  • DeepLabCut 安装

    1 安装Anaconda 2 打开Anaconda Navigator 在Environments中导入官方的配置文件 conda environments文件夹下 GitHub DeepLabCut DeepLabCut Official
  • 强化学习论文解读之FinRL-Meta: Market Environments and Benchmarks for Data-Driven Financial Reinforcement Lear

    FinRL Meta 一个金融强化学习框架 论文地址 https arxiv org pdf 2211 03107 pdf 1 引言 在金融领域 预测股票趋势和制定交易策略是一项具有挑战性的任务 数据驱动强化学习已经成为一种流行的方法来解决
  • java程序设计项目案例化教程题库及答案

    章节自测 1 第01章 走进Java的世界 1 1 填空题 1 Java源程序文件的后缀是 java Java字节码文件的后缀名称是 class 2 Java程序实现可移值性 依靠的是 JVM 3 Java语言的三个分支是 JAVA SE
  • 使用OpenCV实现WebCam摄像头保存JPEG图片(改良1版)

    http blog sina com cn s blog 3e4774e30100frwi html 本次的代码 OpenCV是1 0的 从上次实现从电脑上的摄像头捕捉视频并一秒保存一张图片的效果出发 增加了可以修改保存的图片的像素功能 代
  • 怎么制作睡袋rust_unturned睡袋怎么做 unturned睡袋合成方法介绍

    自从上个月初unturned游戏发布以来 受到了大批网友的追逐 甚至成为了steam上排名第三的游戏 在游戏中玩家虽然能够无限重生 但是重生的地方却是随机的 有时甚至会随机重生到僵尸群中 而unturned睡袋却可以帮助玩家固定重生点 那u
  • springboot点餐微信小程序系统毕业设计源码221144

    springboot点餐微信小程序 摘 要 点餐微信小程序采用B S模式 采用JAVA语言 springboot框架 mysql数据库 小程序框架uniapp等开工具 促进了点餐微信小程序的业务发展 与传统线下点餐相比 点餐维信小程序不但节
  • Python将图像转成像素风,圆圈、线条、波浪、十字绣、乐高积木、我的世界积木、回形针、字母......

    Python将图像转成像素风 圆圈 线条 波浪 十字绣 乐高积木 我的世界积木 回形针 字母 1 效果图 2 原理 3 源码 参考 1 效果图 回形针效果图如下 十字绣效果图如下 水平线效果图如下 垂直线效果图如下
  • 云原生之使用docker部署NTP时间服务器

    云原生之使用docker部署NTP时间服务器 一 chrony介绍 二 容器镜像介绍 三 检查本地docker状态 四 下载ntp镜像 五 部署ntp服务器 1 创建ntp容器 2 查看ntp容器状态 六 检查ntp服务器的时间源 七 客户
  • 增量训练lightgbm模型,深度学习模型

    1 机器学习 增量训练方法 机器学习 增量训练方法 知乎 包含 sklearn lightgbm增量训练方法 2 深度学习模型增量训练 增量训练主要面临的问题 当增量训练时 主要解决的是新增加的训练样本中的新词问题 如果对新增加的新词不做i