当前位置: 首页 > 面试题库 >

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

鄢朝斑
2023-03-14
问题内容

在一般的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)

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


问题答案:

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

pip install tensorflow-determinism

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

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

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



 类似资料:
  • 本文向大家介绍TensorFlow实现随机训练和批量训练的方法,包括了TensorFlow实现随机训练和批量训练的方法的使用技巧和注意事项,需要的朋友参考一下 TensorFlow更新模型变量。它能一次操作一个数据点,也可以一次操作大量数据。一个训练例子上的操作可能导致比较“古怪”的学习过程,但使用大批量的训练会造成计算成本昂贵。到底选用哪种训练类型对机器学习算法的收敛非常关键。 为了Tensor

  • 问题内容: 无论是Javadoc还是代码本身,Comparator接口都定义了: 但这没有编译任何概率: 但这确实是: 接口不允许用户重写方法的方法是什么? 问题答案: 首先,JavaDocs清楚地解释了您应该实现此方法: 此外,仅当指定对象也是一个比较器并且施加与该比较器相同的顺序时,此方法才能返回true。因此,意味着对于每个对象引用和。 但后来: 请注意,始终不要覆盖即可。 即使它是接口的一

  • 问题内容: 有人在说我必须实施OnFragmentInteractionListener,这是一个错误,但是据我所知我正确地实现了它。任何帮助将不胜感激。 主要活动 导航片段 内容片段 错误 问题答案: 两者中的接口都包含一个具有相同签名的方法,并且正在实现一种方法来尝试覆盖这两个接口。 更改一个或两个方法的签名,然后在中实现两个方法。例如: 导航片段 内容片段 主要活动

  • 对于许多应用程序来说,基于输入大小的逻辑拆分是不够的,因为要尊重记录边界。在这种情况下,应用程序还必须实现一个RecordReader,该RecordReader负责尊重记录边界,并向单个任务呈现逻辑输入拆分的面向记录的视图。 WordCount示例应用程序中基于输入大小的逻辑拆分是否不足?如果是,在源代码中的什么地方可以找到RecordReader的实现?

  • 训练后 在您停止训练后,您将在手表上立即获得训练总结。在 Polar Flow 应用程式或在 Polar Flow 网络服务中获得更详细的图示分析。 总结中显示的信息取决于运动内容和收集的数据。例如,训练总结可以包含以下信息: 开始时间和日期 训练持续时间 训练已完成的距离 心率 训练期间的平均和最大心率 训练中的心肺负荷 心率区  不同心率区付出的训练时间 所耗能量 训练课期间所耗能量 碳水化合

  • 训练后 在您停止训练后,您将在手表上立即获得训练总结。在 Polar Flow 应用程式或在 Polar Flow 网络服务中获得更详细的图示分析。 总结中显示的信息取决于运动内容和收集的数据。例如,训练总结可以包含以下信息: 开始时间和日期 训练持续时间 训练已完成的距离 心率 训练期间的平均和最大心率 训练中的心肺负荷 心率区  不同心率区付出的训练时间 所耗能量 训练课期间所耗能量 碳水化合