此问题在此处已有答案:
TensorFlow: Non-repeatable results(5个答案)
19天前关闭。
在一般的tensorflow 设置中,如
model = construct_model()
with tf.Session() as sess:
train_model(sess)
其中construct_model()
包含包括权重(tf.truncated_normal
)的随机初始化的模型定义,并且train_model(sess)
执行模型的训练-
我必须在何处设置哪些种子以确保重复运行上述代码片段之间的100%可重复性?The documentation for tf.random.set_random_seed
可能很简洁,但让我有点困惑。我尝试了:
tf.set_random_seed(1234)
model = construct_model()
with tf.Session() as sess:
train_model(sess)
但每次都得到不同的结果。
4条答案
按热度按时间lmyy7pcs1#
到目前为止,使用GPU的最佳解决方案是安装tensorflow 决定论,如下所示:
然后在代码中包含以下代码
来源:https://github.com/NVIDIA/tensorflow-determinism
brccelvz2#
一个可能的原因是,在构建模型时,有些代码使用了numpy.random模块,所以也许你也可以尝试为numpy设置种子。
cvxl0en23#
对我有效的方法是在this answer之后进行一些修改:
我不知道如何设置session seed(步骤5),但似乎没有必要。
我在一个高RAM TPU上运行Google Colab Pro,我的训练结果(损失函数的图形)在使用这种方法的连续三次中完全相同。
roqulrg34#