我正在训练ML.Net机器学习模型。我可以训练它并从中进行预测,然后从磁盘保存/加载它。但是我需要能够将其从磁盘上加载,然后对其进行重新培训,或者将其添加到新信息中,以随着时间的推移对其进行改进。
有人知道这是否可能吗?我没有在MS文档中找到有关该操作的任何信息,但这对于ML来说是很标准的事情,所以如果无法实现,我会感到惊讶。
谢谢
答案 0 :(得分:6)
此功能存在于ML.NET中,但现有的LearningPipeline
API无法实现。这将在新的ML.NET API中公开,并且可以在this中找到启用此方案的示例。相关代码为:
// Train the first predictor.
var trainer = new LinearClassificationTrainer(env, new LinearClassificationTrainer.Arguments
{
NumThreads = 1
}, "Features", "Label");
var firstModel = trainer.Fit(trainData);
// Train the second predictor on the same data.
var secondTrainer = new AveragedPerceptronTrainer(env, new AveragedPerceptronTrainer.Arguments());
var trainRoles = new RoleMappedData(trainData, label: "Label", feature: "Features");
var finalModel = secondTrainer.Train(new TrainContext(trainRoles, initialPredictor: firstModel.Model));
这些API仍在不断发展,但这也许有所帮助。这尚未成为ML.NET官方发行版的一部分,因此您需要从here获取NuGet或构建here。
注意:我是ML.NET团队的成员。
答案 1 :(得分:1)
如果您最终还是研究ML.NET,我建议您看一下ML.NET模型构建器-有一个非常简单的tutorial here。本质上,您可以下载Visual Studio扩展,该扩展允许您使用GUI来创建新模型。它甚至通过一系列机器学习算法来运行您的数据,并评估最准确的算法。创建模型后,Visual Studio扩展将生成用于创建模型的源代码,因此您可以准确查看模型的工作并在需要时进行调整!
它创建的模型可以随时轻松地重新训练。您可以按照Microsoft documentation here重新训练模型。您需要做的就是加载先前使用的模型和管道,然后通过它们运行一组新数据。然后将重新训练的模型保存回磁盘。
请注意,我最初在创建模型时通过将管道.zip文件保存到磁盘中发现,这使以后的重新训练变得更加容易。