相关疑难解决方法(0)

如何在keras中获得可重现的结果

每次我imdb_lstm.py从Keras框架运行示例时,我得到不同的结果(测试准确性)(https://github.com/fchollet/keras/blob/master/examples/imdb_lstm.py)代码包含np.random.seed(1337)在顶部,在任何keras之前进口.它应该防止它为每次运行生成不同的数字.我错过了什么?

更新:如何重现:

  1. 安装Keras(http://keras.io/)
  2. 执行https://github.com/fchollet/keras/blob/master/examples/imdb_lstm.py 几次.它将训练模型并输出测试精度.
    预期结果:每次运行的测试精度都相同.
    实际结果:每次运行的测试精度都不同.

UPDATE2:我在Windows 8.1上使用MinGW/msys运行它,模块版本:
theano 0.7.0
numpy 1.8.1
scipy 0.14.0c1

更新3:我把问题缩小了一点.如果我用GPU运行示例(设置theano flag device = gpu0),那么每次都会得到不同的测试精度,但是如果我在CPU上运行它,那么一切都按预期工作.我的显卡:NVIDIA GeForce GT 635)

python numpy theano keras

62
推荐指数
6
解决办法
2万
查看次数

哪些种子必须设置在哪里实现100%的训练结果的再现性?

在一般的张量流设置中

model = construct_model()
with tf.Session() as sess:
    train_model(sess)
Run Code Online (Sandbox Code Playgroud)

其中construct_model()包含模型定义,包括权重(tf.truncated_normal)的随机初始化并train_model(sess)执行模型的训练 -

我必须设置哪些种子,以确保重复运行上面的代码片段之间的100%可重复性?该文件tf.random.set_random_seed可能是简洁的,但给我留下了有点混乱.我试过了:

tf.set_random_seed(1234)
model = construct_model()
    with tf.Session() as sess:
        train_model(sess)
Run Code Online (Sandbox Code Playgroud)

但每次都得到不同的结果.

python random-seed tensorflow

7
推荐指数
1
解决办法
2050
查看次数

标签 统计

python ×2

keras ×1

numpy ×1

random-seed ×1

tensorflow ×1

theano ×1