如何将新的图像集添加到现有的ML.Net训练模型ITransformer?

时间:2019-10-15 09:41:55

标签: c# .net tensorflow ml.net

我是机器学习的新手。

我在使用 InceptionV3 的Windows系统上使用了 ML.Net图像分类,并且说我已经有一个训练有素的模型,其中有 100只猫和100只狗照片,并将经过训练的模型另存为ZIP文件。

现在以后我会发现更多的 10只猫,我想将它们添加到已保存的经过训练的ZIP模型文件中,而不是重新训练所有新老猫狗,我将如何实现这个吗?

任何帮助将不胜感激。

这是我的代码,用于创建模型并将其保存在最后一行...但是现在,我想将新发现的猫添加到现有保存的模型中,而无需使用旧的猫和狗照片重新训练模型。请帮忙。

MLContext mlContext = new MLContext(seed: 1);

IEnumerable<ImageData> images = LoadImagesFromDirectory(folder: fullImagesetFolderPath, useFolderNameasLabel: true);

IDataView fullImagesDataset = mlContext.Data.LoadFromEnumerable(images);
IDataView shuffledFullImagesDataset = mlContext.Data.ShuffleRows(fullImagesDataset);

var pipeline = mlContext.Transforms.Conversion.MapValueToKey(outputColumnName: "LabelAsKey",
                                                                        inputColumnName: "Label",
                                                                        keyOrdinality: ValueToKeyMappingEstimator.KeyOrdinality.ByValue)
                    .Append(mlContext.Model.ImageClassification("ImagePath", "LabelAsKey",
                           arch: ImageClassificationEstimator.Architecture.InceptionV3,
                           epoch: 20,
                               batchSize: 5));

  ITransformer trainedModel = pipeline.Fit(trainDataView);

  mlContext.Model.Save(trainedModel, trainDataView.Schema, outputMlNetModelFilePath);

0 个答案:

没有答案