FastText 增量训练

1.安装正确版本

(1)下载IncrementalTraining分支代码GitHub - SergeiAlonichau/fastText at IncrementalTraining,或者下载资源;

(2)将上一步下载的zip进行解压,然后进入文件夹执行make操作即可;

仿照下面的示例,注意一定要是IncrementalTraining分支的代码

2.使用教程

当前版本代码新增了-nepoch、-inputModel两个参数。

-inputModel:指定需要继续训练的模型文件,不需要增量训练时不需要设置该参数。

-nepoch:指定该参数时每迭代一个epoch将会对模型保存一次,并且模型前缀为inputModel传入的参数。当nepoch为0时则不进行加载checkpoint,默认值为-1.

新增用途:

(1)在每轮epoch下可以进行增量训练和评估;

(2)可以通过分批训练来支持海量数据的训练;

(3)微调已经预训练好的模型。

3.使用示例

3.1 一般训练

执行命令

./fasttext.exe supervised -input in_sample_td_1p.txt -output modelx -dim 2 -wordNgrams 6 -bucket 80000000 -thread 10 -verbose 1 -epoch 10
./fasttext test modelx.bin in_sample_td_1p.txt 1

执行日志

Read 96M words
Number of words:  234072
Number of labels: 2
start training...
Progress: 100.0% words/sec/thread: 11638890 lr:  0.000000 loss:  0.204641 ETA:   0h 0mN       4002234
P@1     0.994
R@1     0.994
Number of examples: 4002234

3.2 增量训练

执行命令

./fasttext.exe supervised -input in_sample_td_1p.txt -output model0 -dim 2 -wordNgrams 6 -bucket 80000000 -thread 10 -verbose 1 -epoch 10 -nepoch 0 -inputModel empty.bin
./fasttext test model0.bin in_sample_td_1p.txt 1
for e in 1 2 3 4 5 6 7 8 9 ; dop=`awk "BEGIN { print $e -1 }"` ;echo ./fasttext.exe supervised -input in_sample_td_1p.txt -output model$e -dim 2 -wordNgrams 6 -bucket 80000000 -thread 10 -verbose 1 -inputModel model$p.bin -epoch 10 -nepoch $e ;./fasttext.exe supervised -input in_sample_td_1p.txt -output model$e -dim 2 -wordNgrams 6 -bucket 80000000 -thread 10 -verbose 1 -inputModel model$p.bin -epoch 10 -nepoch $e ;echo ./fasttext test model$e.bin in_sample_td_1p.txt 1 ;./fasttext test model$e.bin in_sample_td_1p.txt 1 ;
done

执行日志

...Read 96M words
Number of words:  234072
Number of labels: 2
Update args
Load dict from trained model
Read 96M words
Load dict from training data
Read 96M words
Number of words:  234072
Number of labels: 2
start training...
Progress: 100.0% words/sec/thread: 108804462 lr:  0.000000 loss:  0.208056 ETA:   0h 0m
./fasttext test model8.bin in_sample_td_1p.txt 1
N       4002234
P@1     0.991
R@1     0.991
Number of examples: 4002234
./fasttext.exe supervised -input in_sample_td_1p.txt -output model9 -dim 2 -wordNgrams 6 -bucket 80000000 -thread 10 -verbose 1 -inputModel model8.bin -epoch 10 -nepoch 9
Read 96M words
Number of words:  234072
Number of labels: 2
Update args
Load dict from trained model
Read 96M words
Load dict from training data
Read 96M words
Number of words:  234072
Number of labels: 2
start training...
Progress: 100.0% words/sec/thread: 119974496 lr:  0.000000 loss:  0.188905 ETA:   0h 0m
./fasttext test model9.bin in_sample_td_1p.txt 1
N       4002234
P@1     0.993
R@1     0.993
Number of examples: 4002234

说明:上述命令先用in_sample_td_1p.txt 数据迭代了10个epoch,然后产生了10个checkpoint,之后再在数据上进行10轮epoch的增量训练,

注意程序会根据thread的取值将bin模型拆分为几个part,供后续增量更新。并且增量训练需要前后保持thread一致,如果最后一次增量训练没设置nepoch则不会产生part文件。

参考资料:

GitHub - SergeiAlonichau/fastText at IncrementalTraining

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/577217.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 动静态库的制作,使用和加载

Linux 动静态库的制作,使用和加载 一.前置说明1.mylib.h2.mylib.c3.mymath.h mymath.c4.如何制作库 二.动静态库的制作1.静态库的制作1.制作2.使用一下静态库,验证是否成功打包 2.动态库的制作1.编译.c源文件文件生成.o目标文件2.打包生成动态库3.编写makefile文件,自动化制作动…

【问题分析】InputDispatcher无焦点窗口ANR问题【Android 14】

1 问题描述 Monkey跑出的无焦点窗口的ANR问题。 特点: 1)、上层WMS有焦点窗口,为Launcher。 2)、native层InputDispacher无焦点窗口,上层为”recents_animation_input_consumer“请求了焦点,但是”rece…

Abaqus2024混凝土随机多边形及界面层插件AbyssFish_RandomPolygon2D V2版本更新

很高兴地向大家宣布, AbyssFish_RandomPolygon2D插件已经迎来了重要更新!本次更新旨在适配Python3版本的Abaqus2024,并优化插件界面,提升用户体验。同时我们为所有已购买旧版本插件的用户提供免费升级服务! 插件介绍…

ESP32

MicroPython 是运行在微控制器硬件之上的完全的Python编译器和运行时系统。提供给用户一个交互式提示符(REPL)来立即执行所支持的命令。 你们那么 。 交互式提示符(REPL)是MicroPython提供给用户的一种界面,它允许用户在…

【QT入门】 QListWidget各种常见用法详解之图标模式

往期回顾 【QT入门】 Qt代码创建布局之多重布局变换与布局删除技巧-CSDN博客 【QT入门】 QTabWidget各种常见用法详解-CSDN博客 【QT入门】 QListWidget各种常见用法详解之列表模式-CSDN博客 【QT入门】 QListWidget各种常见用法详解之图标模式 QListWidget有列表和图标两种显…

《C++ Primer 第五版 中文版》第12章 动态内存【阅读笔记 + 个人思考】

《C Primer 第五版 中文版》第12章 动态内存【阅读笔记 个人思考】 12.1 动态内存与智能指针12.1.1 shared_ptr类 静态内存包括:初始化只读数据段,初始化读写数据段,未初始化数据和常量数据段。 详细在下面博客总结: Linux系统下…

矩阵的归一化技术

矩阵的归一化(Normalization)是将矩阵中的元素缩放到一个特定的范围或者标准,使得在进行比较、评估或计算时能够保持数值稳定性和可比性。这个过程在数据预处理、机器学习、图像处理等领域中非常重要。归一化有助于改善算法的收敛速度和精度&…

Lumos学习python第七课:字符串

一、老规矩,题目呢? 1、题目-----来源力扣 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C …

LeetCode_1.两数之和

一、题目描述 二、方法 1.方法1&#xff08;暴力枚举法&#xff09; 利用两个for循环&#xff0c;对数组进行逐一的遍历&#xff0c;直到找到两个数的和为目标值时返回这两个数的下标。以下为c实现的完整代码。 # include<iostream> using namespace std; #include<…

消息队列经典应用场景

笔者心中,消息队列,缓存,分库分表是高并发解决方案三剑客。 在职业生涯中,笔者曾经使用过 ActiveMQ 、RabbitMQ 、Kafka 、RocketMQ 这些知名的消息队列 。 这篇文章,笔者结合自己的真实经历,和大家分享消息队列的七种经典应用场景。 1 异步&解耦 笔者曾经负责某电…

戴尔灵越3000来说2.5G的双核显存能干啥?

吃鸡已经成为大家耳熟能详的网络游戏。 很多人认为&#xff0c;想要享受吃鸡的乐趣&#xff0c;就必须组装一台高端电脑。 虽然配置越高越好&#xff0c;但现实是很多配置都是以性能为标准的。 有余了&#xff0c;没必要刻意追求高配置、高特效。 说实话&#xff0c;吃鸡不一定…

Linux之文件系统

我们之前谈到的文件描述符fd,是与被加载到内存中的文件相关的&#xff0c;那么还有什么文件呢&#xff1f;磁盘文件 内存文件 ------ 断电失效 磁盘文件 ------ 不受断电的影响 磁盘存储器存、取信息的最基本单位是扇区。 —个扇区能存储512Bytes的数据,OS与磁盘交互的单位…