我正在开发一个用于神经网络图像处理的Python应用程序
我提供了一组数据集,展示了处理后的图像应该是什么样子。现在我有50张宇宙图像作为训练集。作为输入,我提供了一张空白的黑色图像,作为结果,我提供了训练集中的每张图像。
我进行了100个周期的训练,使用了5个隐藏神经元;然而,当我尝试用不同的输入激活我的网络时,我得到了相同的结果。看起来输出似乎只是训练集图像的叠加。
这是代码和最后一次激活的截图:https://gist.github.com/anonymous/6e0e125bddcbb594c1a79c3a28d5d8af
附注:如果问题仍然不清楚(我收到了关于不清晰的警告),显然我不想得到相同的结果。问题是如何让它正常工作。
回答:
如果你输入的是黑色图像,那就意味着你输入的是只包含0的图像,也就是一个全0的数组。
因此,无论层数或层类型如何,训练期间输出总是会是0(任何值乘以0都是0)。唯一可能导致输出不为0的情况是,如果你在每一层使用了偏置。偏置是添加到每个神经元输入的一个小常数。所以在你的情况下,我认为输出总是相同的,因为你的神经网络收敛到只使用层中的偏置。使用一张白色的图像,或者更好的是使用原始(未处理)的图像会更好。
顺便问一下,你的神经网络架构是什么?它包含多少权重?