我正在开发一个用于神经网络图像处理的python应用程序
我正在给出处理后图像应该是什么样的数据集 现在我在训练集中有50张宇宙图像。 作为输入,我给出了空白的黑色图像,因此我给出了每个训练集图像。
我用5个隐藏的神经元训练了100个时代;但是当我尝试使用不同的输入激活我的网络时,我得到相同的结果。似乎输出仅包含彼此分层的训练集图像。
以下是代码和上次激活的屏幕截图: https://gist.github.com/anonymous/6e0e125bddcbb594c1a79c3a28d5d8af
PS:如果它仍然不清楚问题是什么(我收到警告不清楚),我不想明显得到相同的结果。问题是如何让它发挥作用。答案 0 :(得分:1)
如果您将黑色图像作为输入,则表示您提供的图像仅包含0,因此数组为0。
因此,无论层数或类型如何,在训练期间输出将始终为0(无论值乘以0为0)。唯一能使输出不能为0的因素是你在每一层使用偏差。偏差是这个小常数加到每个神经元的输入上。因此,在您的情况下,我认为输出始终是相同的,因为您的NN会聚合为仅使用图层中的偏差。白色图像,或更好的原始(原始)图像会更好。
顺便问一下,你的NN架构是什么?它包含多少重量?
答案 1 :(得分:1)
作为输入,我给出了空白的黑色图像,因此我给出了每个训练集图像。
您将空白黑色图像作为输入并且结果作为处理过的图像是明显错误的。您告诉神经网络(NN)生成的结果尽可能接近您的测试图像。 NN很聪明,但不是魔术。
因此,尽管进行了所有训练,NN只是忽略了数据(或者它的重要性非常低,因为训练中的输入只是一个0的数组)并产生叠加图像。为了确认,请查看每一层的收敛权重和偏差。
解决方案很简单。不使用空白图像作为输入,而是使用原始图像作为输入,将处理后的图像用作输出。