Я пытаюсь использовать предварительно обученную модель Tensorflow в ML.NET. Я загружаю изображения и применяю преобразование в следующем конвейере:
var pipeline = mlContext.Transforms.LoadImages(outputColumnName: "ImageObject", imageFolder: imagesFolder, inputColumnName: nameof(ImageNetData.ImagePath))
.Append(mlContext.Transforms.ResizeImages(outputColumnName: "ImageObjectResized", imageWidth: 256, imageHeight: 160, inputColumnName: "ImageObject"))
.Append(mlContext.Transforms.ExtractPixels(outputColumnName: "batch_normalization_input", inputColumnName: "ImageObjectResized"))
.Append(mlContext.Model.LoadTensorFlowModel(modelLocation).
ScoreTensorFlowModel(outputColumnNames: new[] { InceptionSettings.outputTensorName },
inputColumnNames: new[] { InceptionSettings.inputTensorName }, addBatchDimensionInput: true));
Модель загружается нормально, но когда япопытаться предсказать модель:
var probs = model.Predict(sample).PredictedLabels;
Я получаю следующую ошибку:
input must be 4-dimensional[1,1,160,256,3]
[[{{node batch_normalization/cond/FusedBatchNormV3_1}}]]
Я могу визуализировать вектор "batch_normalization_input" и, кажется, {Плотный вектор размера122880} так что, похоже, он обладает всей необходимой информацией (умножьте 160 * 256 * 3), но я не знаю, как получить реальную форму вектора или заставить ее получить желаемую форму [1, 1,160,256,3].
Спасибо