通过运行此链接Neural Network – Predicting Values of Multiple Variables中提供的代码,我得到了结果。我能够计算损失的准确性等。 但是,每次运行此代码时,都会得到一个新结果。是否有可能获得相同(一致)的结果?
答案 0 :(得分:1)
那里有很多随机数组。每次使用np.random.seed()
获取相同的内容。例如:
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]
请注意,机器学习管道中的许多其他部分也使用随机化。例如:
train_test_split()
划分训练,验证和测试数据集。大多数ML函数都允许您将种子作为参数传递。看一下文档。根据您的工作以及所使用的库,您是否可以使整个管道具有可复制性。
您可能也喜欢this article或this one,希望通过Keras获得可重复的结果。
答案 1 :(得分:1)
到处都有random.randint()
的代码!此外,权重在大多数情况下也是随机设置的,并且batch_size对结果也有影响(尽管影响很小)。
adam
作为优化程序,意味着您将执行随机梯度下降。以随机为起点进行迭代,以收敛。解决方案:
np.random.seed()
生成的随机值如果我找到一种解决batch_size
/ epoch
问题的一致性采样方法的方法,我将编辑我的答案。