Python 不考虑输入产生相同输出的神经网络

Python 不考虑输入产生相同输出的神经网络,python,machine-learning,neural-network,Python,Machine Learning,Neural Network,我目前正在尝试用Python实现一个神经网络来玩蛇的游戏,这个游戏是用遗传算法训练的(尽管现在这是一个单独的问题) 每一个玩游戏的网络都会一遍又一遍地做同样的动作(例如,继续保持直线,不断左转)。网络有5个输入:在所有四个方向上到物体(食物、边界、它自己的尾巴)的距离,以及食物和蛇面对的方向之间的角度。这三个输出分别表示左转、直行和右转 我以前从未做过类似的工作,所以我对这一点有了相当基本的了解。隐藏层的数量和每层节点的数量是可变的,这是我一直在做很多修改以测试的,但是蛇继续重复着完全相同的运动

我目前正在尝试用Python实现一个神经网络来玩蛇的游戏,这个游戏是用遗传算法训练的(尽管现在这是一个单独的问题)

每一个玩游戏的网络都会一遍又一遍地做同样的动作(例如,继续保持直线,不断左转)。网络有5个输入:在所有四个方向上到物体(食物、边界、它自己的尾巴)的距离,以及食物和蛇面对的方向之间的角度。这三个输出分别表示左转、直行和右转

我以前从未做过类似的工作,所以我对这一点有了相当基本的了解。隐藏层的数量和每层节点的数量是可变的,这是我一直在做很多修改以测试的,但是蛇继续重复着完全相同的运动


任何关于为什么会发生这种情况以及如何解决的建议都将不胜感激。如果有用的话,我可以展示我的代码。

你可能将权重初始化为零,如果它们没有经过适当训练,并且由于某种原因保持为零,神经网络将始终产生偏差作为输出。

感谢你的建议-我检查了权重的初始值,它们不是0。输出的实际值是变化的,但它总是产生相同的结果(例如,输出1总是最大的输出,即使其值变化)。