当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.data.experimental.shuffle_and_repeat用法及代码示例


洗牌和重复数据集,每次重复都重新洗牌。 (已弃用)

用法

tf.data.experimental.shuffle_and_repeat(
    buffer_size, count=None, seed=None
)

参数

  • buffer_size tf.int64 标量 tf.Tensor ,表示预取时将缓冲的最大元素数。
  • count (可选。)tf.int64 标量 tf.Tensor ,表示数据集应重复的次数。默认行为(如果 countNone-1 )是无限期重复数据集。
  • seed (可选。)tf.int64 标量 tf.Tensor ,表示将用于创建分布的随机种子。有关行为,请参阅tf.random.set_seed

返回

警告:此函数已弃用。它将在未来的版本中删除。更新说明:使用 tf.data.Dataset.shuffle(buffer_size, seed) 后跟 tf.data.Dataset.repeat(count) 。静态 tf.data 优化将负责使用融合实现。

d = tf.data.Dataset.from_tensor_slices([1, 2, 3])
d = d.apply(tf.data.experimental.shuffle_and_repeat(2, count=2))
[elem.numpy() for elem in d] # doctest:+SKIP
[2, 3, 1, 1, 3, 2]
dataset.apply(
  tf.data.experimental.shuffle_and_repeat(buffer_size, count, seed))

产生与

dataset.shuffle(
  buffer_size, seed=seed, reshuffle_each_iteration=True).repeat(count)

在每次重复中,此数据集用buffer_size 元素填充缓冲区,然后从该缓冲区中随机采样元素,用新元素替换所选元素。对于完美的混洗,将缓冲区大小设置为等于数据集的完整大小。

例如,如果您的数据集包含 10,000 个元素,但 buffer_size 设置为 1,000,则 shuffle 最初将仅从缓冲区中的前 1,000 个元素中选择一个随机元素。一旦选择了一个元素,它在缓冲区中的空间就会被下一个(即第 1,001 个)元素替换,从而保持 1,000 个元素的缓冲区。

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.data.experimental.shuffle_and_repeat。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。