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


Python tf.compat.v1.train.shuffle_batch用法及代码示例

通过随机打乱张量创建批次。 (已弃用)

用法

tf.compat.v1.train.shuffle_batch(
    tensors, batch_size, capacity, min_after_dequeue, num_threads=1, seed=None,
    enqueue_many=False, shapes=None, allow_smaller_final_batch=False,
    shared_name=None, name=None
)

参数

  • tensors 要入队的张量列表或字典。
  • batch_size 从队列中拉出的新批量大小。
  • capacity 一个整数。队列中的最大元素数。
  • min_after_dequeue 出队后队列中的最小元素数,用于确保元素的混合级别。
  • num_threads 排队的线程数 tensor_list
  • seed 队列中随机洗牌的种子。
  • enqueue_many tensor_list 中的每个张量是否是单个示例。
  • shapes (可选)每个示例的形状。默认为 tensor_list 的推断形状。
  • allow_smaller_final_batch (可选)布尔值。如果 True ,如果队列中剩余的项目不足,则允许最终批次更小。
  • shared_name (可选)如果设置,此队列将在多个会话中以给定名称共享。
  • name (可选)操作的名称。

返回

  • 类型为 tensors 的张量列表或字典。

抛出

  • ValueError 如果 shapes 未指定,并且无法从 tensors 的元素中推断出来。

警告:此函数已弃用。它将在未来的版本中删除。更新说明:基于队列的输入管道已替换为 tf.data 。使用 tf.data.Dataset.shuffle(min_after_dequeue).batch(batch_size)

此函数将以下内容添加到当前 Graph

  • 一个洗牌队列,来自tensors 的张量被排入队列。
  • 用于从队列中创建批次的 dequeue_many 操作。
  • QueueRunnerQUEUE_RUNNER 集合,用于将来自 tensors 的张量排入队列。

如果enqueue_manyFalse , tensors 则假定代表一个示例。形状为 [x, y, z] 的输入张量将作为形状为 [batch_size, x, y, z] 的张量输出。

如果enqueue_manyTrue , tensors 则假设代表一批样本,其中第一个维度是按样本索引的,并且tensors 的所有成员在第一个维度中应该具有相同的大小。如果输入张量的形状为 [*, x, y, z] ,则输出的形状为 [batch_size, x, y, z]

capacity 参数控制允许预取增加队列的时间。

返回的操作是出队操作,如果输入队列用尽,将抛出tf.errors.OutOfRangeError。如果此操作正在提供另一个输入队列,则其队列运行器将捕获此异常,但是,如果在您的主线程中使用此操作,则您自己负责捕获此异常。

例如:

# Creates batches of 32 images and 32 labels.
image_batch, label_batch = tf.compat.v1.train.shuffle_batch(
      [single_image, single_label],
      batch_size=32,
      num_threads=4,
      capacity=50000,
      min_after_dequeue=10000)

注意:您必须确保 (i) shapes 参数被传递,或者 (ii) tensors 中的所有张量必须具有 fully-defined 形状。如果这些条件都不成立,则会引发 ValueError

如果 allow_smaller_final_batchTrue ,则当队列关闭且没有足够的元素填充该批次时,将返回小于 batch_size 的批次值,否则将丢弃待处理的元素。此外,通过 shape 属性访问的所有输出张量的静态形状将具有 None 的第一个 Dimension 值,并且依赖于固定 batch_size 的操作将失败。

eager模式兼容性

启用即刻执行时,不支持基于队列的输入管道。请使用tf.data API 在即刻执行下摄取数据。

相关用法


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