一尘不染

为了在张量流中实现训练结果的100%可再现性,必须设置哪些种子?

python

在一般的tensorflow设置中

model = construct_model()
with tf.Session() as sess:
    train_model(sess)

其中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)

但是每次都得到不同的结果。


阅读 121

收藏
2020-12-20

共1个答案

一尘不染

到目前为止,与GPU配合使用的最佳解决方案是使用以下方法安装张量流确定性:

pip install tensorflow-determinism

然后将以下代码添加到您的代码中

import tensorflow as tf
import os
os.environ['TF_DETERMINISTIC_OPS'] = '1'

来源:https :
//github.com/NVIDIA/tensorflow-
determinism

2020-12-20