【问题标题】:how to give image input to neural network for pattern recognition如何将图像输入给神经网络以进行模式识别
【发布时间】:2015-10-02 21:25:36
【问题描述】:

我正在使用反向传播神经网络(在 java 中)对植物病害图像进行模式识别。我知道可以将不同的二进制特征作为神经网络的输入。但是我完全混淆了如何在这种情况下比较神经网络的输出。我的意思是我没有定义任何输出。而且在图像的情况下,我如何定义输出,以便我可以找到定义的输出和网络计算的输出之间的误差来调整权重。我很认真,请帮助我。谢谢你

【问题讨论】:

  • 你说的植物病害识别是指不同类型的病害还是同一种病害的不同阶段?
  • 不同类型的疾病。你知道吗,请回答。

标签: java neural-network pattern-recognition


【解决方案1】:

这绝不是一个完整的答案,但它不适合评论框。这也应该为您可以做什么提供一些指导。

您可以做的是将图像编码为一系列从[0,255] 范围内的字节值。这应该会产生一个字节向量,其大小应该与图像中的像素数量相同。

然后您可以将此向量传递给神经网络,这意味着神经网络的输入层需要与向量本身一样大。

最后,您可以分配不同的向量值来表示不同的疾病。例如,给定输入向量[1,55,201,44,258,...],预期向量将是[0,0,0,0,0,1]。然后,该向量将映射到特定疾病。

如果颜色对您不重要,您可以将输入向量减少为二进制值向量,例如,根据某个阈值将图像变为黑白。

【讨论】:

  • 谢谢。但是由于像素的数量很高,因此很难进行输入。请对特定疾病的向量和映射给出清晰的愿景
  • @user3763077:我上面的回复应该让你开始。如果您有特定问题,请打开一个新问题,在其中说明您的问题是什么,您期望什么以及您得到什么。你不能指望这里的用户为你做你的工作。
  • 实际上我有输入向量,例如。对于 disease1,向量类似于 [1,245,45,......,n],对于 disease2 [240,30,25,15,65,.....n],对于 disease3 [13,54,56 ,87,98,56,48,......n]。现在,当我向网络提供输入时,我应该如何猜测我的预期输出向量,以便我可以计算错误并将向量映射到特定疾病。
  • @user3763077:网络将通过各个层向前馈送输入,直到网络发出结果,这本身就是一个向量。您将得到的向量与您期望的向量进行比较,然后开始反向传播过程。
  • 对不起,但我应该如何猜测每种疾病的预期载体。请帮帮我。
猜你喜欢
  • 2015-02-20
  • 2016-09-15
  • 2015-12-31
  • 2019-11-18
  • 2012-05-29
  • 1970-01-01
  • 2011-01-06
  • 2013-11-30
  • 2011-06-02
相关资源
最近更新 更多