首页 > 解决方案 > 可以从保存的模型 .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()再次调用使用加载的模型?

标签: c#tensorflowmachine-learningtransfer-learningml.net

解决方案


ML.NET 不支持恢复图像分类培训师的培训。目前,唯一支持它的培训师如下: https ://docs.microsoft.com/en-us/dotnet/machine-learning/how-to-guides/retrain-model-ml-net


推荐阅读