当前位置: 首页 > 知识库问答 >
问题:

如何在Deeplearning4J中将BufferedImage作为输入加载到分类器?

谯嘉木
2023-03-14

我试图得到一个经过训练的卷积神经网络(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输入。提前感谢您在这方面的任何帮助。

线程“main”java.lang.IllegalArgumentException:无效输入:expect output columns必须等于rows 28 x columns 28 x Channels1,但在org.deeplearning4j.nn.conf.preprocessor.FeedForwardToCNNPreprocessor.preprocess(FeedForwardToCNNPreprocessor.java:90)在

共有1个答案

劳麒
2023-03-14

您可以将indarray input=loader.asmatrix(image);调用更改为indarray input=loader.asmatrix(image)。reshape(1,28,28,1);将输入转换为正确的形状(即minibatch x height x width x channels)

 类似资料:
  • 问题内容: 好的,所以我一直在尝试使用以下代码加载BufferedImage: 但是,这在运行时给了我一个类型转换错误,那么如何正确加载BufferedImage? 问题答案: 使用来代替:

  • 在我的spring boot应用程序中,我有以下配置: 我想把上面的内容理解为。我试着把下面的课: 引导配置文件如下所示: 单元测试类: 输出为

  • 问题内容: 如何在Java中转换为? 请注意,现有答案显然是不正确的,因为它使用方法和,如果尚未加载图像(根据定义,它是一个异步对象),则可以返回。 请提供更正确的答案,或提供更多证明现有答案已经正确的证据。 问题答案: 如果这对您很重要,则可以使用“等待”来加载图像,然后就不必担心提供 看看JavaDocs了解更多详细信息 我不想添加任何GUI,我只需要下载图像或失败 好吧,如果您“需要下载”该

  • 我有一个JavaScript函数,当页面加载时打印10。 这是代码: 上述功能在页面加载时显示“10”。但是它显示在页面的顶部。 但是我想显示“10”作为html表中名为“testtitle2”的行的输入值。

  • 想知道在StanfordCorenlp中是否有一种方法来加载特定的分类器。我试图解决一个问题,其中3个分类器在默认情况下被加载,第三个分类器不可靠地返回ner标记,并导致应用程序中的不一致性。想知道加载English.all.3Class对于基本的命名实体标记足够好,以及下面列表中其他两个的相关性是什么。 edu/stanford/nlp/models/ner/english.all.3class

  • 首先感谢你花时间来帮助我。我的名字是Matt,我一直在努力学习java,并创建mc插件。我一直在尝试为MC制作一个具有深入学习的插口插件。我正在尝试使用deeplearning4j。我知道我可以把这个问题放到spigotmc的网站上,但我不认为他们会很有帮助,因为从以前在spigotmc上的帖子来看,他们中的很多人似乎对dl4j不太了解。因此,到目前为止,我所做的是使用dl4j网站上的快速入门指南