Open iamhedandan opened 7 years ago
因为存在dropout层,随机丢掉一些参数重设为0,如果结果每次都一样,那才是一件非常奇怪的事情。
@iamhedandan 将随机数种子固定有可能会得到完全相同的结果
@MoyanZitto 大神,例子中np.random.seed(1337)已经固定了随机数种子了,是不是还有其他地方需要固定随机种子的,都有哪些地方,可不可以贴代码教我···
@busixingxing 可不可以教我怎么固定dropout的值
我也只是使用 dropout,并不知道如何固定,因为我也不清楚 dropout的随机数是如何产生的,是不是服从 random的随机种子
@iamhedandan 我也不太清楚……
Dropout 层的初始化参数里有一个 seed 参数,我想这就是你想找的。
通过设置的 seed,会调用K.dropout(x, self.p, noise_shape, seed=self.seed),然后调用tf.nn.dropout(x * 1., retain_prob, noise_shape, seed=seed),既然到了 tensorflow,我们也可以直接使用这个函数tf.set_random_seed
来设置随机数种子。
我将keras example中的例子imdb_cnn.py运行三次,得到三次不同的结果,输出test accuracy得到的结果分别为: 0.87996, 0.87632, 0.87644 请问怎样做才能使最终输出的结果完全稳定下来,每次运行输出结果一模一样,完全重现?