Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 每次运行神经网络代码时,结果都会发生变化_Python 3.x_Tensorflow_Neural Network_Conv Neural Network_Recurrent Neural Network - Fatal编程技术网

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))
  • 将数据分为训练数据集、验证数据集和测试数据集
  • 在神经网络中设置初始权重
  • 优化路径
大多数ML函数允许您将种子作为参数传递。请查看文档。取决于您正在做什么,以及您正在使用的库,您可能无法使整个管道重现


您可能还喜欢或关于使用Keras获得可复制的结果。

代码中到处都是
random.randint()
!此外,权重在大多数情况下也是随机设置的,批次大小对结果也有影响(尽管影响很小)

  • Y_序列、X_测试、X_序列是随机生成的
  • 使用
    adam
    作为优化器,意味着您将执行随机梯度下降。以随机的迭代开始点收敛
  • 批次大小为8意味着您将运行由8个随机选择的样本组成的批次
  • 解决方案:

  • 在代码中设置一个随机种子,使其始终具有使用
    np.random.seed()生成的随机值
  • 虽然存在微小偏差,但不会产生太多问题
  • 与2相同

  • 如果我找到了一种方法来为
    批量大小
    /
    历元
    问题提供一致的抽样方法,我将编辑我的答案

    嘿,谢谢你的回复。。首先,我很抱歉,我张贴了参考代码,没有提供完整的信息。实际上,我使用自己的数据对参考代码做了一些修改,这些数据不是随机的。X_列、y_列、X_测试、y_测试都是从另一个源生成的。尽管使用了我自己的数据,但每次我都会得到不同的结果。@MitraLanka好的,我更新了我的答案,使之更为笼统。感谢提供链接。我已经使用了这些命令。现在,结果是稳定的。别忘了给你认为有用的东西投票!嘿,谢谢你的回复。。首先,我很抱歉,我张贴了参考代码,没有提供完整的信息。实际上,我使用自己的数据对参考代码做了一些修改,这些数据不是随机的。X_列、y_列、X_测试、y_测试都是从另一个源生成的。尽管使用了我自己的数据,但每次我都会得到不同的结果。请仔细阅读我的评论,因为它与您放置其他评论的位置不同。对此我深表歉意!我试图理解你的解释,但无法理解。为了有抽样方法,我是否必须实现批量大小和历元数的不同组合?问题是,批量大小和历元数是使用随机抽样技术生成的,这可能会影响整体性能。在这里你可以找到更多的信息:谢谢你的解释和链接