private PredictionEngine <ImageNetData, ImageNetPrediction> LoadModel(string dataLocation, string imagesFolder, string modelLocation) { ConsoleHelpers.ConsoleWriteHeader("Read model"); Console.WriteLine($"Model location: {modelLocation}"); Console.WriteLine($"Images folder: {imagesFolder}"); Console.WriteLine($"Training file: {dataLocation}"); Console.WriteLine($"Default parameters: image size=({ImageNetSettings.imageWidth},{ImageNetSettings.imageHeight}), image mean: {ImageNetSettings.mean}"); var data = mlContext.Data.LoadFromTextFile <ImageNetData>(dataLocation, hasHeader: true); var pipeline = mlContext.Transforms.LoadImages(outputColumnName: "input", imageFolder: imagesFolder, inputColumnName: nameof(ImageNetData.ImagePath)) .Append(mlContext.Transforms.ResizeImages(outputColumnName: "input", imageWidth: ImageNetSettings.imageWidth, imageHeight: ImageNetSettings.imageHeight, inputColumnName: "input")) .Append(mlContext.Transforms.ExtractPixels(outputColumnName: "input", interleavePixelColors: ImageNetSettings.channelsLast, offsetImage: ImageNetSettings.mean)) .Append(mlContext.Model.LoadTensorFlowModel(modelLocation). ScoreTensorFlowModel(outputColumnNames: new[] { "softmax2" }, inputColumnNames: new[] { "input" }, addBatchDimensionInput: true)); ITransformer model = pipeline.Fit(data); var predictionEngine = mlContext.Model.CreatePredictionEngine <ImageNetData, ImageNetPrediction>(model); return(predictionEngine); }