Python 3.x 每次运行神经网络代码时,结果都会发生变化
我通过运行此链接中提供的代码获得了结果。我能够准确地计算损失等。Python 3.x 每次运行神经网络代码时,结果都会发生变化,python-3.x,tensorflow,neural-network,conv-neural-network,recurrent-neural-network,Python 3.x,Tensorflow,Neural Network,Conv Neural Network,Recurrent Neural Network,我通过运行此链接中提供的代码获得了结果。我能够准确地计算损失等。 但是,每次运行此代码时,都会得到一个新结果。有可能得到相同的(一致的)结果吗 里面有很多随机数组。每次都使用相同的。例如: np.random.seed(42) for _ in range(3): print(np.random.random(3)) 每次运行此代码时,都会得到相同的结果。在我的机器上: [0.37454012 0.95071431 0.73199394] [0.59865848 0.15601
但是,每次运行此代码时,都会得到一个新结果。有可能得到相同的(一致的)结果吗 里面有很多随机数组。每次都使用相同的。例如:
np.random.seed(42)
for _ in range(3):
print(np.random.random(3))
每次运行此代码时,都会得到相同的结果。在我的机器上:
[0.37454012 0.95071431 0.73199394]
[0.59865848 0.15601864 0.15599452]
[0.05808361 0.86617615 0.60111501]
请注意,机器学习管道的许多其他部分也使用随机化。例如:
np.random.seed(42)
for _ in range(3):
print(np.random.random(3))
- 将数据分为训练数据集、验证数据集和测试数据集
- 在神经网络中设置初始权重
- 优化路径
您可能还喜欢或关于使用Keras获得可复制的结果。代码中到处都是
random.randint()
!此外,权重在大多数情况下也是随机设置的,批次大小对结果也有影响(尽管影响很小)
adam
作为优化器,意味着您将执行随机梯度下降。以随机的迭代开始点收敛np.random.seed()生成的随机值
如果我找到了一种方法来为
批量大小
/历元
问题提供一致的抽样方法,我将编辑我的答案 嘿,谢谢你的回复。。首先,我很抱歉,我张贴了参考代码,没有提供完整的信息。实际上,我使用自己的数据对参考代码做了一些修改,这些数据不是随机的。X_列、y_列、X_测试、y_测试都是从另一个源生成的。尽管使用了我自己的数据,但每次我都会得到不同的结果。@MitraLanka好的,我更新了我的答案,使之更为笼统。感谢提供链接。我已经使用了这些命令。现在,结果是稳定的。别忘了给你认为有用的东西投票!嘿,谢谢你的回复。。首先,我很抱歉,我张贴了参考代码,没有提供完整的信息。实际上,我使用自己的数据对参考代码做了一些修改,这些数据不是随机的。X_列、y_列、X_测试、y_测试都是从另一个源生成的。尽管使用了我自己的数据,但每次我都会得到不同的结果。请仔细阅读我的评论,因为它与您放置其他评论的位置不同。对此我深表歉意!我试图理解你的解释,但无法理解。为了有抽样方法,我是否必须实现批量大小和历元数的不同组合?问题是,批量大小和历元数是使用随机抽样技术生成的,这可能会影响整体性能。在这里你可以找到更多的信息:谢谢你的解释和链接