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


Python tf.data.TFRecordDataset.group_by_window用法及代码示例


用法

group_by_window(
    key_func, reduce_func, window_size=None, window_size_func=None, name=None
)

参数

  • key_func 将张量的嵌套结构(具有由 self.output_shapesself.output_types 定义的形状和类型)映射到标量 tf.int64 张量的函数。
  • reduce_func 一个函数,将一个键和最多 window_size 与该键匹配的连续元素的数据集映射到另一个数据集。
  • window_size 一个 tf.int64 标量 tf.Tensor ,表示与同一键匹配的连续元素的数量以组合在一个批次中,这将传递给 reduce_func 。与 window_size_func 互斥。
  • window_size_func 将键映射到 tf.int64 标量 tf.Tensor 的函数,表示与同一键匹配的连续元素的数量以组合在一个批次中,这将传递给 reduce_func 。与 window_size 互斥。
  • name (可选。) tf.data 操作的名称。

返回

  • 一个Dataset

抛出

  • ValueError 如果 {window_size , window_size_func} 都没有或都通过。

通过键对元素窗口进行分组并减少它们。

此转换使用key_func 将数据集中的每个连续元素映射到一个键,并按键对元素进行分组。然后它将reduce_func 应用于最多匹配相同键的window_size_func(key) 元素。除了每个键的最终窗口外,所有的都将包含window_size_func(key) 元素;最终的窗口可能会更小。

您可以提供常量 window_size 或由键通过 window_size_func 确定的窗口大小。

dataset = tf.data.Dataset.range(10)
window_size = 5
key_func = lambda x:x%2
reduce_func = lambda key, dataset:dataset.batch(window_size)
dataset = dataset.group_by_window(
          key_func=key_func,
          reduce_func=reduce_func,
          window_size=window_size)
for elem in dataset.as_numpy_iterator():
  print(elem)
[0 2 4 6 8]
[1 3 5 7 9]

相关用法


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