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

use*_*212 7 python random-seed tensorflow

在一般的张量流设置中

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)

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

eug*_*gen 1

目前适用于 GPU 的最佳解决方案是使用以下命令安装 TensorFlow 确定性:

pip install tensorflow-determinism
Run Code Online (Sandbox Code Playgroud)

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

import tensorflow as tf
import os
os.environ['TF_DETERMINISTIC_OPS'] = '1'
Run Code Online (Sandbox Code Playgroud)

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