【TensorFlow】确定性训练与随机数

本文详细解读了Tensorflow中tf.set_random_seed的用法,介绍了如何设置graph-level seeds和operation-level seeds以实现不同场景下的随机数生成一致性或可重复性。了解种子设置策略及其在跨session和操作级应用中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

随机种子

TF的随机种子设置策略如下,参考python/framework/random_seed.py

tf.set_random_seed()
 设置默认graph的graph-level random seed。

  依赖于random seed的Op实际上是从两个seed派生出来的:
  graph-level seeds 和 operation-level seeds。这里将设置graph-level seeds。

  它与operation_seeds的交互如下:
    1. 如果graph_seeds和operation_seeds都没有设置:
      此操作使用随机种子。
    2.如果设置了graph_seeds,但没有设置operation_seeds:
      系统确定性地选择一个operation_seeds和graph_seeds,以便它获得唯一的随机序列。
    3.如果没有设置graph_seeds,但是设置了operation_seeds:
      默认的graph_seeds和指定的operation_seeds用于确定随机序列。
    4. 如果graph_seeds和operation_seeds都设置了:
      两个seed结合使用来确定随机序列。
   
  要跨sessions生成不同的序列,请不要设置graph_seeds和operation_seeds;
  要跨sessions为操作生成相同的可重复序列,请设置operation_seeds;
  要使所有ops生成的随机序列在sessions中可重复,请设置graph_seeds;
tf.get_seed()
返回给定ops特定种子时ops应该使用的local seeds。

  给定特定于ops的种子 `op_seed`,这个辅助函数返回两个从graph_seeds和operation_seeds派生的种子。
  许多随机ops在内部使用这两个种子,以允许用户全局更改graph_seeds,或仅针对特定ops。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值