Tensorflow 神经网络为相同的输入提供不同的输出

Tensorflow 神经网络为相同的输入提供不同的输出,tensorflow,neural-network,Tensorflow,Neural Network,NN为同一输入输出不同值的潜在原因是什么?特别是在没有任何随机或随机过程的情况下?这可能是由于数据的混洗,如果要使用相同的向量,应关闭混洗参数。这是一个非常广泛和普遍的问题,甚至可能太广泛而无法在此讨论,但关于神经网络,有几点你应该知道: 它们是而不是寻找一个完美最优解的方法。神经网络通常学习给出的示例,并“找出”一种方法来合理地预测结果。合理是相对的,对于某些模型可能意味着50%的成功,而对于其他模型,任何低于99.9%的都将被视为失败 他们的结果非常依赖于培训的数据。数据的顺序很重要,在训练

NN为同一输入输出不同值的潜在原因是什么?特别是在没有任何随机或随机过程的情况下?

这可能是由于数据的混洗,如果要使用相同的向量,应关闭混洗参数。

这是一个非常广泛和普遍的问题,甚至可能太广泛而无法在此讨论,但关于神经网络,有几点你应该知道:

  • 它们是而不是寻找一个完美最优解的方法。神经网络通常学习给出的示例,并“找出”一种方法来合理地预测结果。合理是相对的,对于某些模型可能意味着50%的成功,而对于其他模型,任何低于99.9%的都将被视为失败

  • 他们的结果非常依赖于培训的数据。数据的顺序很重要,在训练期间对数据进行洗牌通常是个好主意,但这可能会导致截然不同的结果。此外,数据的质量也很重要——例如,如果训练数据在性质上与测试数据非常不同

  • 神经网络在计算中的最佳类比当然是大脑。即使有相同的信息和相同的基本生物学基础,我们都可以基于无穷无尽的其他变量,对事物形成不同的观点。在某种程度上,计算机学习也是如此

  • 某些类型的神经网络使用
    dropout
    层,专门设计用于在训练期间关闭网络的随机部分。这不应影响最终的预测过程,因为对于预测,该层通常设置为允许网络的所有部分运行,但如果您输入数据并告诉模型它正在“训练”,而不是要求它进行预测,结果可能会有很大差异


  • 所有这些的总和仅仅是说:神经网络的训练应该期望从相似的起始条件中产生不同的结果,因此,必须针对每种情况进行多次测试,以确定哪些部分是不可避免的,哪些部分不是。

    不是重复的。OP已经声明他禁用了任何随机性,因此洗牌不是这里的潜在原因。