Я пытаюсь получить обученную сверточную нейронную сеть (CNN) для классификации нового изображения (которое приходит как объект BufferedImage).
Модель CNN была обучена с использованием примера, предоставленного в DeepLearning4j (https://github.com/eclipse/deeplearning4j-examples/blob/master/dl4j-examples/src/main/java/org/deeplearning4j/examples/convolution/mnist/MnistClassifier.java).
Я попытался преобразовать объект BufferedImage в INDArray, который является ожидаемым типом ввода для модели.
public static INDArray classify(BufferedImage image) throws IOException {
String modelFile = "e:\\c1\\TrainingData\\mnistplus-model.1.zip";
MultiLayerNetwork classifier = MultiLayerNetwork.load(new File(modelFile), false);
int channels = 1;
ImageLoader loader = new ImageLoader(TARGET_WIDTH, TARGET_HEIGHT, channels);
INDArray input = loader.asMatrix(image);
INDArray output = classifier.output(input);
System.out.println(output);
return output;
}
Однако я получил ошибку, когда входные данные передаются в модель. Похоже, я не правильно инициализировал вход INDArray. Заранее спасибо за любую помощь по этому вопросу.
Исключение внить "основной"(FeedForwardToCnnPreProcessor.java:90) at org.deeplearning4j.nn.multilayer.MultiLayerNetwork.outputOfLayerDetached (MultiLayerNetwork.java:1281)