程序地带

ML.net重新训练模型需要注意的事项。


ml.net是微软机器学习的东西,如果你的需求是需要一个固定的模型来进行操作的话那就按着官网的教程来就可以,但是大部分的模型可能不满足现有的需求,那么我们需要对模型进行重新训练。
重新训练模型有限制条件,你重新训练模型的数据分类必须是原有模型已有的分类,如果想增加分类的话只能重新训练一个新的模型来进行操作。
模型重新训练的话在第一次模型生成时候需要保存另外一个模型文件,如图:

modle的生成是通过定义的ogdEstimator算法进行生成的,而ogdEstimator里的算法需要和上面你生成模型的管道的算法一致。算法所需要的参数labelColumnName和featureColumnName也需要一一对应。
第一次建模型阶段准备工作已完成,需要保存的两个zip尽量保存到项目中去。
后续训练已有的模型开始的话是这样的:

首先加载你所保存的两个模型文件,originalModelParameters所转换的参数类型需要跟你模型的算法参数类型匹配,不然会提示无法转换成功。

然后加载你导入的新数据,转为IDataview。

这部分是主要是重新训练模型的算法,LbfgsMaximumEntropy里面的参数要相对应,这个就不用说了,当然你的算法要是其他的也差不太多。
Fit所传入的两个变量,第一个是你的新数据,第二个是你的老数据,新的训练模型将以老数据为起点进行训练。

所生成的retrainedModel模型数据直接保存到modelZip就可以。


接下来在进行使用这个模型的时候需要进行一些改变。
如果你不需要重新训练模型的话,进行预测是这样的:

直接拿第一次生成的模型进行预测。然后返回给你预测的结果。
但是当我们重新训练过模型的时候需要对预测方法进行一些改变:

需要加载初始的模型和训练后的模型。
重新训练模型的正常流程大概就是这样的了。正常生成模型以及进行预测的方法官方的demo里就可以找到。
注:保存模型之后的Weights会获取不到,提示非公开成员。然后我这边需要进行这样一个操作:


先定义然后通过GetWeights获取Weights的数据。


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/DmainNmain/p/14192893.html

随机推荐

远程usb端口映射_PLC远程控制

远程usb端口映射_PLC远程控制

如何实现PLC联网、PLC远程下载、PLC远程监控等功能,下面介绍PLC远程共享的方法!随着物联网技术的发展和信息技术的普及,越来越多的PLC、HMI等自动控...

weixin_39599830 阅读(535)

css background 旋转_CSS动画之transform

css background 旋转_CSS动画之transform

CSS的transform属性用来给元素添加一些变形效果,主要包括改变元素的位置或形状,同时不影响页面的布局。使用transform我们可以实现一些非常炫酷的效果ÿ...

懂车天天答 阅读(944)

js 获取服务器ip_如何提高香港服务器网站的访问速度

js 获取服务器ip_如何提高香港服务器网站的访问速度

从选择服务器上入手1.选择直连国内网络骨干的机房直连国内网络骨干机房通常节点都比较少。通常数据在经过路由器进行转发时,都需要花费一定的时间,因而节点比较少的机房࿰...

蝨孨槑黽 阅读(421)