c# - 可以从保存的模型 .zip 文件或检查点恢复 ML.NET 图像分类迁移学习吗?如何?
问题描述
我正在使用 NuGet 包 Microsoft.ML (1.4.0) 和 SciSharp.TensorFlow.Redist (1.15.0)
初始训练和保存模型工作正常
var options = new Microsoft.ML.Vision.ImageClassificationTrainer.Options()
{
FeatureColumnName = "Image",
LabelColumnName = "LabelAsKey",
Arch = Microsoft.ML.Vision.ImageClassificationTrainer.Architecture.InceptionV3,
Epoch = 50,
BatchSize = 10,
LearningRate = 0.01f,
MetricsCallback = (metrics) => Console.WriteLine(metrics),
ValidationSet = testDataView
};
var pipeline = mlContext.MulticlassClassification.Trainers.ImageClassification(options)
.Append(mlContext.Transforms.Conversion.MapKeyToValue(
outputColumnName: "PredictedLabel",
inputColumnName: "PredictedLabel"));
ITransformer trainedModel = pipeline.Fit(trainDataView);
mlContext.Model.Save(trainedModel, trainDataView.Schema, "C:/Temp/model.zip")
并且使用该模型进行预测工作正常
var loadModel = mlContext.Model.Load("C/Temp/Model.zip", out var modelInputSchema)
var PredictionEngine = mlContext.Model.CreatePredictionEngine<InMemoryImageData, ImagePrediction>(loadModel);
prediction = PredictionEngine.Predict(image);
但是,如果我想继续用更多图像训练 model.zip 文件而不从头开始重新训练基线模型,我该怎么做?
有没有办法可以.Fit()
再次调用使用加载的模型?
解决方案
ML.NET 不支持恢复图像分类培训师的培训。目前,唯一支持它的培训师如下: https ://docs.microsoft.com/en-us/dotnet/machine-learning/how-to-guides/retrain-model-ml-net
推荐阅读
- python - 使用pygame减少对象之间的距离
- python - 使用嵌套 for 循环的 while 循环计数
- telegram - 是否可以通过 API 向 Telegram 的“已保存消息”发送消息?
- javascript - 如何在 Nuxt 中从另一个访问一个 Vuex 状态?
- acumatica - 无法在 Acumatica 的自定义编辑器中打开现金销售表格
- database - 可以存储在 B+ 树中的最小记录数?
- sql - 两个日期之间的 SQL Server 总和数据按日期分组
- azerothcore - 艾泽拉斯核认证服务器和世界服务器无法启动
- r - 在 dplyr 中使用跨函数
- java - java运行环境无结果