成功解决AttributeError: 'MapDataset' object has no attribute 'group_by_window'

成功解决AttributeError: 'MapDataset' object has no attribute 'group_by_window'


解决问题

AttributeError: 'MapDataset' object has no attribute 'group_by_window'

解决思路

错误属性:“mapdataset”对象没有“window”的“group”属性

A transformation that groups windows of elements by key and reduces them.

This transformation maps each consecutive element in a dataset to a key using key_func and groups the elements by key. It then applies reduce_func to at most window_size_func(key) elements matching the same key. All except the final window for each key will contain window_size_func(key) elements; the final window may be smaller.

You may provide either a constant window_size or a window size determined by the key through window_size_func.

Args:

  • key_func: A function mapping a nested structure of tensors (having shapes and types defined by self.output_shapes and self.output_types) to a scalar tf.int64 tensor.
  • reduce_func: A function mapping a key and a dataset of up to window_size consecutive elements matching that key to another dataset.
  • window_size: A tf.int64 scalar tf.Tensor, representing the number of consecutive elements matching the same key to combine in a single batch, which will be passed to reduce_func. Mutually exclusive with window_size_func.
  • window_size_func: A function mapping a key to a tf.int64 scalar tf.Tensor, representing the number of consecutive elements matching the same key to combine in a single batch, which will be passed to reduce_func. Mutually exclusive with window_size.

Returns:

Dataset transformation function, which can be passed to tf.data.Dataset.apply.

Raises:

  • ValueError: if neither or both of {window_sizewindow_size_func} are passed.

解决方法

'MapDataset' 这种对象,没有'group_by_window'这种属性。

tf.contrib.data.group_by_window(
    key_func,
    reduce_func,
    window_size=None,
    window_size_func=None
)

    # batched_dataset = src_tgt_dataset.group_by_window(
    #     key_func=key_func, reduce_func=reduce_func, window_size=batch_size)
    #20180626修改此处
    batched_dataset = src_tgt_dataset.apply(
        tf.contrib.data.group_by_window(
            key_func=key_func, reduce_func=reduce_func, window_size=batch_size))

相关文章推荐

tf.contrib.data.group_by_window:https://tensorflow.google.cn/api_docs/python/tf/contrib/data/group_by_window

(0)

相关推荐