Creates a dataset that fuses mapping with batching.

    input_dataset, other_arguments, batch_size, num_parallel_calls, drop_remainder,
    f, output_types, output_shapes, preserve_cardinality=False, name=None

Creates a dataset that applies f to the outputs of input_dataset and then batches batch_size of them.

Unlike a "MapDataset", which applies f sequentially, this dataset invokes up to batch_size * num_parallel_batches copies of f in parallel.


  • input_dataset: A Tensor of type variant. A variant tensor representing the input dataset.
  • other_arguments: A list of Tensor objects. A list of tensors, typically values that were captured when building a closure for f.
  • batch_size: A Tensor of type int64. A scalar representing the number of elements to accumulate in a batch. It determines the number of concurrent invocations of f that process elements from input_dataset in parallel.
  • num_parallel_calls: A Tensor of type int64. A scalar representing the maximum number of parallel invocations of the map_fn function. Applying the map_fn on consecutive input elements in parallel has the potential to improve input pipeline throughput.
  • drop_remainder: A Tensor of type bool. A scalar representing whether the last batch should be dropped in case its size is smaller than desired.
  • f: A function decorated with @Defun. A function to apply to the outputs of input_dataset.
  • output_types: A list of tf.DTypes that has length >= 1.
  • output_shapes: A list of shapes (each a tf.TensorShape or list of ints) that has length >= 1.
  • preserve_cardinality: An optional bool. Defaults to False.
  • name: A name for the operation (optional).


A Tensor of type variant.