def __init__(self, input_dataset):
   self._input_dataset = input_dataset
   temp_variant_tensor = gen_dataset_ops.prefetch_dataset(
       input_dataset._variant_tensor,
       buffer_size=1,
       **dataset_ops.flat_structure(self))
   variant_tensor = gen_dataset_ops.model_dataset(
       temp_variant_tensor, **dataset_ops.flat_structure(self))
   super(_TestDataset, self).__init__(input_dataset, variant_tensor)
Example #2
0
  def __init__(self, datasets, num_experiments=10):
    """Chooses the fastest of some input datasets.

    Given input datasets, produces elements as quickly as the fastest of the
    inputs. Note that this dataset assumes that input datasets have the same
    elements in the same order, though this is not enforced besides checking
    that the input datasets have compatible output types, output shapes, and
    cardinality at runtime. The resulting dataset produces elements that are
    identical to the input elements, and in the same order.

    Note that the time to first iteration is longer when this dataset is used
    due to the overhead of dynamically picking the faster dataset. Namely,
    for the first num_experiments iterations, this dataset will pull from all
    of its inputs simultaneously in order to determine which input is the
    fastest. For all subsequent iterations, that input will be used.

    Args:
      datasets: A list of `Datasets` that all have the same elements in the same
        order.
      num_experiments: The number of experiments to run before deciding which
        dataset is fastest. In each "experiment" iteration, the dataset will
        call from all its inputs simultaneously, and update its knowledge of
        which input is the fastest.

    Returns:
      A `Dataset` that has the same elements the inputs.
    """
    self._datasets = list(datasets)
    self._structure = self._datasets[0]._element_structure  # pylint: disable=protected-access
    variant_tensor = (
        gen_experimental_dataset_ops.experimental_choose_fastest_dataset(
            [dataset._variant_tensor for dataset in self._datasets],  # pylint: disable=protected-access
            num_experiments=num_experiments,
            **dataset_ops.flat_structure(self)))
    super(_ChooseFastestDataset, self).__init__(variant_tensor)
Example #3
0
 def _as_variant_tensor(self):
   # pylint: disable=protected-access
   return (
       gen_experimental_dataset_ops.experimental_directed_interleave_dataset(
           self._selector_input._variant_tensor,
           [data_input._variant_tensor for data_input in self._data_inputs],
           **dataset_ops.flat_structure(self)))
Example #4
0
 def _as_variant_tensor(self):
   return gen_dataset_ops.slide_dataset(
       self._input_dataset._as_variant_tensor(),  # pylint: disable=protected-access
       window_size=self._window_size,
       window_shift=self._window_shift,
       window_stride=self._window_stride,
       **dataset_ops.flat_structure(self))
Example #5
0
    def __init__(self, input_dataset, num_workers):
        self._input_dataset = input_dataset

        def recalculate_output_shapes(output_shapes):
            """Recalculates the output_shapes after dividing it by num_workers."""
            if len(output_shapes) < 1:
                raise ValueError(
                    "Input shape should have at least one dimension.")
            if (tensor_shape.dimension_value(output_shapes[0])
                    and tensor_shape.dimension_value(output_shapes[0]) %
                    num_workers != 0):
                raise errors.InvalidArgumentError(
                    None, None,
                    "First dim of input shape: %d is not divisible by num_workers: %d"
                    % (output_shapes[0], num_workers))
            output_dims = [d for d in output_shapes.dims]
            output_dims[0] = output_dims[0] // num_workers
            return tensor_shape.TensorShape(output_dims)

        input_types = dataset_ops.get_legacy_output_types(self._input_dataset)
        input_shapes = dataset_ops.get_legacy_output_shapes(
            self._input_dataset)
        input_classes = dataset_ops.get_legacy_output_classes(
            self._input_dataset)
        output_shapes = nest.map_structure(recalculate_output_shapes,
                                           input_shapes)

        self._structure = structure.convert_legacy_structure(
            input_types, output_shapes, input_classes)
        variant_tensor = ged_ops.experimental_rebatch_dataset(
            self._input_dataset._variant_tensor,  # pylint: disable=protected-access
            num_workers=num_workers,
            **dataset_ops.flat_structure(self))
        super(_RebatchDataset, self).__init__(input_dataset, variant_tensor)
Example #6
0
    def __init__(self, input_dataset, window_size, window_shift,
                 window_stride):
        """See `sliding_window_batch` for details."""
        self._input_dataset = input_dataset
        self._window_size = ops.convert_to_tensor(window_size,
                                                  dtype=dtypes.int64,
                                                  name="window_stride")
        self._window_stride = ops.convert_to_tensor(window_stride,
                                                    dtype=dtypes.int64,
                                                    name="window_stride")
        self._window_shift = ops.convert_to_tensor(window_shift,
                                                   dtype=dtypes.int64,
                                                   name="window_shift")

        input_structure = structure.convert_legacy_structure(
            input_dataset.output_types, input_dataset.output_shapes,
            input_dataset.output_classes)
        self._structure = input_structure._batch(None)  # pylint: disable=protected-access
        variant_tensor = ged_ops.experimental_sliding_window_dataset(
            self._input_dataset._variant_tensor,  # pylint: disable=protected-access
            window_size=self._window_size,
            window_shift=self._window_shift,
            window_stride=self._window_stride,
            **dataset_ops.flat_structure(self))
        super(_SlideDataset, self).__init__(input_dataset, variant_tensor)
  def materialize(self, shared_name=None, container=None):
    """Materialize creates a MaterializedIndexedDataset.

    IndexedDatasets can be combined through operations such as TBD. Therefore,
    they are only materialized when absolutely required.

    Args:
      shared_name: a string for the shared name to use for the resource.
      container: a string for the container to store the resource.

    Returns:
      A MaterializedIndexedDataset.
    """
    if container is None:
      container = ""
    if shared_name is None:
      shared_name = ""
    materialized_resource = (
        ged_ops.experimental_materialized_index_dataset_handle(
            container=container,
            shared_name=shared_name,
            **dataset_ops.flat_structure(self)))

    with ops.colocate_with(materialized_resource):
      materializer = ged_ops.experimental_indexed_dataset_materialize(
          self._as_variant_tensor(), materialized_resource)
    return MaterializedIndexedDataset(materialized_resource, materializer,
                                      self.output_classes, self.output_types,
                                      self.output_shapes)
Example #8
0
 def _as_variant_tensor(self):
   input_t = self._input_dataset._as_variant_tensor()  # pylint: disable=protected-access
   return gen_dataset_ops.map_dataset(
       input_t,
       self._map_func.captured_inputs,
       f=self._map_func,
       **dataset_ops.flat_structure(self))
Example #9
0
  def __init__(self, input_dataset, map_func, batch_size, num_parallel_calls,
               drop_remainder, use_legacy_function=False):
    """See `Dataset.map()` for details."""
    self._input_dataset = input_dataset

    self._map_func = dataset_ops.StructuredFunctionWrapper(
        map_func,
        "tf.data.experimental.map_and_batch()",
        dataset=input_dataset,
        use_legacy_function=use_legacy_function)
    self._batch_size_t = ops.convert_to_tensor(
        batch_size, dtype=dtypes.int64, name="batch_size")
    self._num_parallel_calls_t = ops.convert_to_tensor(
        num_parallel_calls, dtype=dtypes.int64, name="num_parallel_calls")
    self._drop_remainder_t = ops.convert_to_tensor(
        drop_remainder, dtype=dtypes.bool, name="drop_remainder")

    constant_drop_remainder = tensor_util.constant_value(self._drop_remainder_t)
    if constant_drop_remainder:
      # NOTE(mrry): `constant_drop_remainder` may be `None` (unknown statically)
      # or `False` (explicitly retaining the remainder).
      self._structure = self._map_func.output_structure._batch(  # pylint: disable=protected-access
          tensor_util.constant_value(self._batch_size_t))
    else:
      self._structure = self._map_func.output_structure._batch(None)  # pylint: disable=protected-access
    variant_tensor = ged_ops.experimental_map_and_batch_dataset(
        self._input_dataset._variant_tensor,  # pylint: disable=protected-access
        self._map_func.function.captured_inputs,
        f=self._map_func.function,
        batch_size=self._batch_size_t,
        num_parallel_calls=self._num_parallel_calls_t,
        drop_remainder=self._drop_remainder_t,
        preserve_cardinality=True,
        **dataset_ops.flat_structure(self))
    super(_MapAndBatchDataset, self).__init__(input_dataset, variant_tensor)
Example #10
0
 def _as_variant_tensor(self):
   return gen_dataset_ops.set_stats_aggregator_dataset(
       self._input_dataset._as_variant_tensor(),  # pylint: disable=protected-access
       self._stats_aggregator._resource,  # pylint: disable=protected-access
       self._tag,
       self._prefix,
       **dataset_ops.flat_structure(self))
Example #11
0
 def _as_variant_tensor(self):
   return ged_ops.experimental_sliding_window_dataset(
       self._input_dataset._as_variant_tensor(),  # pylint: disable=protected-access
       window_size=self._window_size,
       window_shift=self._window_shift,
       window_stride=self._window_stride,
       **dataset_ops.flat_structure(structure=self._output_structure))
Example #12
0
    def __init__(self, filenames):
        """Create a `LMDBDataset`.

    `LMDBDataset` allows a user to read data from a mdb file as
    (key value) pairs sequentially.
    For example:
    ```python
    dataset = tf.contrib.lmdb.LMDBDataset("/foo/bar.mdb")
    iterator = dataset.make_one_shot_iterator()
    next_element = iterator.get_next()
    # Prints the (key, value) pairs inside a lmdb file.
    while True:
      try:
        print(sess.run(next_element))
      except tf.errors.OutOfRangeError:
        break
    ```
    Args:
      filenames: A `tf.string` tensor containing one or more filenames.
    """
        self._filenames = ops.convert_to_tensor(filenames,
                                                dtype=dtypes.string,
                                                name="filenames")
        variant_tensor = gen_experimental_dataset_ops.experimental_lmdb_dataset(
            self._filenames, **dataset_ops.flat_structure(self))
        super(LMDBDataset, self).__init__(variant_tensor)
Example #13
0
  def __init__(self, input_dataset, num_workers):
    self._input_dataset = input_dataset

    def recalculate_output_shapes(output_shapes):
      """Recalculates the output_shapes after dividing it by num_workers."""
      if len(output_shapes) < 1:
        raise ValueError(
            "Input shape should have at least one dimension. "
            "Perhaps your input dataset is not batched?")
      output_dims = [d for d in output_shapes.dims]
      output_dims[0] = (output_dims[0] + num_workers - 1) // num_workers
      return tensor_shape.TensorShape(output_dims)

    input_types = dataset_ops.get_legacy_output_types(self._input_dataset)
    input_shapes = dataset_ops.get_legacy_output_shapes(self._input_dataset)
    input_classes = dataset_ops.get_legacy_output_classes(self._input_dataset)
    output_shapes = nest.map_structure(recalculate_output_shapes, input_shapes)

    self._structure = structure.convert_legacy_structure(
        input_types, output_shapes, input_classes)
    variant_tensor = ged_ops.experimental_rebatch_dataset(
        self._input_dataset._variant_tensor,  # pylint: disable=protected-access
        num_workers=num_workers,
        **dataset_ops.flat_structure(self))
    super(_RebatchDataset, self).__init__(input_dataset, variant_tensor)
 def _as_variant_tensor(self):
     # pylint: disable=protected-access
     return gen_dataset_ops.directed_interleave_dataset(
         self._selector_input._as_variant_tensor(), [
             data_input._as_variant_tensor()
             for data_input in self._data_inputs
         ], **dataset_ops.flat_structure(self))
Example #15
0
    def __init__(self,
                 input_dataset,
                 path,
                 compression=None,
                 reader_path_prefix=None,
                 writer_path_prefix=None):

        self._compression = compression if compression is not None else ""
        self._reader_path_prefix = (reader_path_prefix
                                    if reader_path_prefix is not None else "")
        self._writer_path_prefix = (writer_path_prefix
                                    if writer_path_prefix is not None else "")

        self._input_dataset = input_dataset
        self._path = ops.convert_to_tensor(path,
                                           dtype=dtypes.string,
                                           name="path")

        variant_tensor = ged_ops.snapshot_dataset(
            self._input_dataset._variant_tensor,  # pylint: disable=protected-access
            path=self._path,
            compression=self._compression,
            reader_path_prefix=self._reader_path_prefix,
            writer_path_prefix=self._writer_path_prefix,
            **dataset_ops.flat_structure(self))
        super(_SnapshotDataset, self).__init__(input_dataset, variant_tensor)
Example #16
0
    def __init__(self, datasets, num_experiments=10):
        """Chooses the fastest of some input datasets.

    Given input datasets, produces elements as quickly as the fastest of the
    inputs. Note that this dataset assumes that input datasets have the same
    elements in the same order, though this is not enforced besides checking
    that the input datasets have compatible output types, output shapes, and
    cardinality at runtime. The resulting dataset produces elements that are
    identical to the input elements, and in the same order.

    Note that the time to first iteration is longer when this dataset is used
    due to the overhead of dynamically picking the faster dataset. Namely,
    for the first num_experiments iterations, this dataset will pull from all
    of its inputs simultaneously in order to determine which input is the
    fastest. For all subsequent iterations, that input will be used.

    Args:
      datasets: A list of `Datasets` that all have the same elements in the same
        order.
      num_experiments: The number of experiments to run before deciding which
        dataset is fastest. In each "experiment" iteration, the dataset will
        call from all its inputs simultaneously, and update its knowledge of
        which input is the fastest.

    Returns:
      A `Dataset` that has the same elements the inputs.
    """
        self._datasets = list(datasets)
        self._structure = self._datasets[0]._element_structure  # pylint: disable=protected-access
        variant_tensor = (
            gen_experimental_dataset_ops.experimental_choose_fastest_dataset(
                [dataset._variant_tensor for dataset in self._datasets],  # pylint: disable=protected-access
                num_experiments=num_experiments,
                **dataset_ops.flat_structure(self)))
        super(_ChooseFastestDataset, self).__init__(variant_tensor)
    def __init__(self, per_device_dataset, incarnation_id):
        # pylint: disable=protected-access
        self._structure = per_device_dataset._structure

        self._init_func = per_device_dataset._init_func
        self._init_captured_args = self._init_func.captured_inputs

        self._next_func = per_device_dataset._next_func
        self._next_captured_args = per_device_dataset._next_captured_args
        # The captured arguments to the next_func are string_handle, incarnation_id.
        # We update the incarnation id to the new one.
        self._next_captured_args[
            per_device_dataset._incarnation_id_index] = incarnation_id

        self._finalize_func = per_device_dataset._finalize_func
        self._finalize_captured_args = per_device_dataset._finalize_captured_args

        variant_tensor = gen_dataset_ops.generator_dataset(
            self._init_captured_args,
            self._next_captured_args,
            self._finalize_captured_args,
            init_func=self._init_func,
            next_func=self._next_func,
            finalize_func=self._finalize_func,
            **dataset_ops.flat_structure(self))
        super(_ReincarnatedPerDeviceGenerator, self).__init__(variant_tensor)
  def __init__(self, per_device_dataset, incarnation_id):
    # pylint: disable=protected-access
    self._structure = per_device_dataset._structure

    self._init_func = per_device_dataset._init_func
    self._init_captured_args = self._init_func.captured_inputs

    self._next_func = per_device_dataset._next_func
    self._next_captured_args = per_device_dataset._next_captured_args
    # The captured arguments to the next_func are string_handle, incarnation_id.
    # We update the incarnation id to the new one.
    self._next_captured_args[
        per_device_dataset._incarnation_id_index] = incarnation_id

    self._finalize_func = per_device_dataset._finalize_func
    self._finalize_captured_args = per_device_dataset._finalize_captured_args

    variant_tensor = gen_dataset_ops.generator_dataset(
        self._init_captured_args,
        self._next_captured_args,
        self._finalize_captured_args,
        init_func=self._init_func,
        next_func=self._next_func,
        finalize_func=self._finalize_func,
        **dataset_ops.flat_structure(self))
    super(_ReincarnatedPerDeviceGenerator, self).__init__(variant_tensor)
Example #19
0
  def __init__(self, input_dataset, map_func, batch_size, num_parallel_calls,
               drop_remainder):
    """See `Dataset.map()` for details."""
    self._input_dataset = input_dataset

    self._map_func = dataset_ops.StructuredFunctionWrapper(
        map_func, "tf.data.experimental.map_and_batch()", dataset=input_dataset)
    self._batch_size_t = ops.convert_to_tensor(
        batch_size, dtype=dtypes.int64, name="batch_size")
    self._num_parallel_calls_t = ops.convert_to_tensor(
        num_parallel_calls, dtype=dtypes.int64, name="num_parallel_calls")
    self._drop_remainder_t = ops.convert_to_tensor(
        drop_remainder, dtype=dtypes.bool, name="drop_remainder")

    constant_drop_remainder = tensor_util.constant_value(self._drop_remainder_t)
    if constant_drop_remainder:
      # NOTE(mrry): `constant_drop_remainder` may be `None` (unknown statically)
      # or `False` (explicitly retaining the remainder).
      self._structure = self._map_func.output_structure._batch(  # pylint: disable=protected-access
          tensor_util.constant_value(self._batch_size_t))
    else:
      self._structure = self._map_func.output_structure._batch(None)  # pylint: disable=protected-access
    variant_tensor = ged_ops.experimental_map_and_batch_dataset(
        self._input_dataset._variant_tensor,  # pylint: disable=protected-access
        self._map_func.function.captured_inputs,
        f=self._map_func.function,
        batch_size=self._batch_size_t,
        num_parallel_calls=self._num_parallel_calls_t,
        drop_remainder=self._drop_remainder_t,
        preserve_cardinality=True,
        **dataset_ops.flat_structure(self))
    super(_MapAndBatchDataset, self).__init__(input_dataset, variant_tensor)
Example #20
0
 def _as_variant_tensor(self):
   input_t = self._input_dataset._as_variant_tensor()  # pylint: disable=protected-access
   return gen_dataset_ops.map_dataset(
       input_t,
       self._map_func.captured_inputs,
       f=self._map_func,
       **dataset_ops.flat_structure(self))
Example #21
0
 def _as_variant_tensor(self):
     return ged_ops.experimental_sliding_window_dataset(
         self._input_dataset._as_variant_tensor(),  # pylint: disable=protected-access
         window_size=self._window_size,
         window_shift=self._window_shift,
         window_stride=self._window_stride,
         **dataset_ops.flat_structure(self))
Example #22
0
 def __init__(self,
              make_variant_fn,
              columns,
              output_types,
              output_shapes=None,
              batch_size=None,
              batch_mode='keep_remainder'):
     self._columns = columns
     self._structure = structure_lib.convert_legacy_structure(
         output_types, output_shapes or nest.map_structure(
             lambda _: tf.TensorShape(None), output_types),
         nest.map_structure(lambda _: tf.Tensor, output_types))
     self._batch_size = tf.convert_to_tensor(batch_size or 0,
                                             dtype=dtypes.int64,
                                             name="batch_size")
     if batch_mode not in self.batch_modes_supported:
         raise ValueError(
             "Unsupported batch_mode: '{}', must be one of {}".format(
                 batch_mode, self.batch_modes_supported))
     self._batch_mode = tf.convert_to_tensor(batch_mode,
                                             dtypes.string,
                                             name="batch_mode")
     if batch_size is not None or batch_mode == 'auto':
         # pylint: disable=protected-access
         self._structure = self._structure._batch(
             batch_size if batch_mode == 'drop_remainder' else None)
     variant_tensor = make_variant_fn(columns=self._columns,
                                      batch_size=self._batch_size,
                                      batch_mode=self._batch_mode,
                                      **flat_structure(self))
     super(ArrowBaseDataset, self).__init__(variant_tensor)
Example #23
0
 def _as_variant_tensor(self):
     return gen_dataset_ops.set_stats_aggregator_dataset(
         self._input_dataset._as_variant_tensor(),  # pylint: disable=protected-access
         self._stats_aggregator._resource,  # pylint: disable=protected-access
         self._tag,
         self._prefix,
         **dataset_ops.flat_structure(self))
Example #24
0
  def __init__(self, input_dataset, num_workers):
    self._input_dataset = input_dataset

    def recalculate_output_shapes(output_shapes):
      """Recalculates the output_shapes after dividing it by num_workers."""
      if len(output_shapes) < 1:
        raise ValueError("Input shape should have at least one dimension.")
      if (tensor_shape.dimension_value(output_shapes[0]) and
          tensor_shape.dimension_value(output_shapes[0]) % num_workers != 0):
        raise errors.InvalidArgumentError(
            None, None,
            "First dim of input shape: %d is not divisible by num_workers: %d" %
            (output_shapes[0], num_workers))
      output_dims = [d for d in output_shapes.dims]
      output_dims[0] = output_dims[0] // num_workers
      return tensor_shape.TensorShape(output_dims)

    input_types = dataset_ops.get_legacy_output_types(self._input_dataset)
    input_shapes = dataset_ops.get_legacy_output_shapes(self._input_dataset)
    input_classes = dataset_ops.get_legacy_output_classes(self._input_dataset)
    output_shapes = nest.map_structure(recalculate_output_shapes, input_shapes)

    self._structure = structure.convert_legacy_structure(
        input_types, output_shapes, input_classes)
    variant_tensor = ged_ops.experimental_rebatch_dataset(
        self._input_dataset._variant_tensor,  # pylint: disable=protected-access
        num_workers=num_workers,
        **dataset_ops.flat_structure(self))
    super(_RebatchDataset, self).__init__(input_dataset, variant_tensor)
Example #25
0
    def __init__(self, input_dataset):
        """See `unbatch()` for more details."""
        input_shapes = dataset_ops.get_legacy_output_shapes(input_dataset)
        flat_shapes = nest.flatten(input_shapes)
        if any(s.ndims == 0 for s in flat_shapes):
            raise ValueError("Cannot unbatch an input with scalar components.")
        known_batch_dim = tensor_shape.Dimension(None)
        for s in flat_shapes:
            try:
                known_batch_dim = known_batch_dim.merge_with(s[0])
            except ValueError:
                raise ValueError(
                    "Cannot unbatch an input whose components have "
                    "different batch sizes.")
        self._input_dataset = input_dataset

        self._structure = structure.convert_legacy_structure(
            dataset_ops.get_legacy_output_types(input_dataset),
            nest.map_structure(lambda s: s[1:], input_shapes),
            dataset_ops.get_legacy_output_classes(input_dataset))

        variant_tensor = ged_ops.experimental_unbatch_dataset(
            self._input_dataset._variant_tensor,  # pylint: disable=protected-access
            **dataset_ops.flat_structure(self))
        super(_UnbatchDataset, self).__init__(input_dataset, variant_tensor)
Example #26
0
  def __init__(self, input_dataset, features, num_parallel_calls):
    self._input_dataset = input_dataset
    if not input_dataset._element_structure.is_compatible_with(  # pylint: disable=protected-access
        structure.TensorStructure(dtypes.string, [None])):
      raise TypeError("Input dataset should be a dataset of vectors of strings")
    self._num_parallel_calls = num_parallel_calls
    # pylint: disable=protected-access
    self._features = parsing_ops._prepend_none_dimension(features)
    # sparse_keys and dense_keys come back sorted here.
    (sparse_keys, sparse_types, dense_keys, dense_types, dense_defaults,
     dense_shapes) = parsing_ops._features_to_raw_params(
         self._features, [
             parsing_ops.VarLenFeature, parsing_ops.SparseFeature,
             parsing_ops.FixedLenFeature, parsing_ops.FixedLenSequenceFeature
         ])
    # TODO(b/112859642): Pass sparse_index and sparse_values for SparseFeature.
    (_, dense_defaults_vec, sparse_keys, sparse_types, dense_keys, dense_shapes,
     dense_shape_as_shape) = parsing_ops._process_raw_parameters(
         None, dense_defaults, sparse_keys, sparse_types, dense_keys,
         dense_types, dense_shapes)
    # pylint: enable=protected-access
    self._sparse_keys = sparse_keys
    self._sparse_types = sparse_types
    self._dense_keys = dense_keys
    self._dense_defaults = dense_defaults_vec
    self._dense_shapes = dense_shapes
    self._dense_types = dense_types
    input_dataset_shape = dataset_ops.get_legacy_output_shapes(
        self._input_dataset)
    dense_output_shapes = [input_dataset_shape.concatenate(shape)
                           for shape in dense_shape_as_shape]
    sparse_output_shapes = [input_dataset_shape.concatenate([None])
                            for _ in range(len(sparse_keys))]

    output_shapes = dict(
        zip(self._dense_keys + self._sparse_keys,
            dense_output_shapes + sparse_output_shapes))
    output_types = dict(
        zip(self._dense_keys + self._sparse_keys,
            self._dense_types + self._sparse_types))
    output_classes = dict(
        zip(self._dense_keys + self._sparse_keys,
            [ops.Tensor for _ in range(len(self._dense_defaults))] +
            [sparse_tensor.SparseTensor for _ in range(len(self._sparse_keys))
            ]))
    self._structure = structure.convert_legacy_structure(
        output_types, output_shapes, output_classes)

    variant_tensor = (
        gen_experimental_dataset_ops.experimental_parse_example_dataset(
            self._input_dataset._variant_tensor,  # pylint: disable=protected-access
            self._num_parallel_calls,
            self._dense_defaults,
            self._sparse_keys,
            self._dense_keys,
            self._sparse_types,
            self._dense_shapes,
            **dataset_ops.flat_structure(self)))
    super(_ParseExampleDataset, self).__init__(input_dataset, variant_tensor)
Example #27
0
 def __init__(self, input_dataset, thread_pool):
     self._input_dataset = input_dataset
     self._thread_pool = thread_pool
     variant_tensor = ged_ops.experimental_thread_pool_dataset(
         self._input_dataset._variant_tensor,  # pylint: disable=protected-access
         self._thread_pool._resource,  # pylint: disable=protected-access
         **dataset_ops.flat_structure(self))
     super(_ThreadPoolDataset, self).__init__(input_dataset, variant_tensor)
Example #28
0
 def __init__(self, input_dataset):
   """See `Dataset.ignore_errors()` for details."""
   self._input_dataset = input_dataset
   variant_tensor = (
       gen_experimental_dataset_ops.experimental_ignore_errors_dataset(
           self._input_dataset._variant_tensor,  # pylint: disable=protected-access
           **dataset_ops.flat_structure(self)))
   super(_IgnoreErrorsDataset, self).__init__(input_dataset, variant_tensor)
Example #29
0
 def __init__(self, input_dataset):
   """See `Dataset.ignore_errors()` for details."""
   self._input_dataset = input_dataset
   variant_tensor = (
       gen_experimental_dataset_ops.experimental_ignore_errors_dataset(
           self._input_dataset._variant_tensor,  # pylint: disable=protected-access
           **dataset_ops.flat_structure(self)))
   super(_IgnoreErrorsDataset, self).__init__(input_dataset, variant_tensor)
Example #30
0
 def __init__(self, input_dataset, sleep_microseconds):
   self._input_dataset = input_dataset
   self._sleep_microseconds = sleep_microseconds
   variant_tensor = gen_experimental_dataset_ops.experimental_sleep_dataset(
       self._input_dataset._variant_tensor,  # pylint: disable=protected-access
       self._sleep_microseconds,
       **dataset_ops.flat_structure(self))
   super(_SleepDataset, self).__init__(input_dataset, variant_tensor)
Example #31
0
 def __init__(self, input_dataset, thread_pool):
   self._input_dataset = input_dataset
   self._thread_pool = thread_pool
   variant_tensor = ged_ops.experimental_thread_pool_dataset(
       self._input_dataset._variant_tensor,  # pylint: disable=protected-access
       self._thread_pool._resource,  # pylint: disable=protected-access
       **dataset_ops.flat_structure(self))
   super(_ThreadPoolDataset, self).__init__(input_dataset, variant_tensor)
Example #32
0
 def _as_variant_tensor(self):
   input_t = self._input_dataset._as_variant_tensor()  # pylint: disable=protected-access
   return gen_dataset_ops.scan_dataset(
       input_t,
       nest.flatten(sparse.serialize_sparse_tensors(self._initial_state)),
       self._scan_func.captured_inputs,
       f=self._scan_func,
       **dataset_ops.flat_structure(self))
Example #33
0
 def __init__(self, input_dataset):
   """See `non_serializable()` for details."""
   self._input_dataset = input_dataset
   variant_tensor = (
       gen_experimental_dataset_ops.experimental_non_serializable_dataset(
           self._input_dataset._variant_tensor,  # pylint: disable=protected-access
           **dataset_ops.flat_structure(self)))
   super(_NonSerializableDataset, self).__init__(input_dataset, variant_tensor)
Example #34
0
 def __init__(self, input_dataset, sleep_microseconds):
     self._input_dataset = input_dataset
     self._sleep_microseconds = sleep_microseconds
     variant_tensor = gen_experimental_dataset_ops.experimental_sleep_dataset(
         self._input_dataset._variant_tensor,  # pylint: disable=protected-access
         self._sleep_microseconds,
         **dataset_ops.flat_structure(self))
     super(_SleepDataset, self).__init__(input_dataset, variant_tensor)
Example #35
0
 def __init__(self, seed=None):
     """A `Dataset` of pseudorandom values."""
     self._seed, self._seed2 = random_seed.get_seed(seed)
     variant_tensor = gen_experimental_dataset_ops.experimental_random_dataset(
         seed=self._seed,
         seed2=self._seed2,
         **dataset_ops.flat_structure(self))
     super(RandomDatasetV2, self).__init__(variant_tensor)
Example #36
0
 def _as_variant_tensor(self):
   input_t = self._input_dataset._as_variant_tensor()  # pylint: disable=protected-access
   return ged_ops.experimental_map_dataset(
       input_t,
       self._map_func.function.captured_inputs,
       f=self._map_func.function,
       use_inter_op_parallelism=self._use_inter_op_parallelism,
       **dataset_ops.flat_structure(self))
 def _as_variant_tensor(self):
     input_t = self._input_dataset._as_variant_tensor()  # pylint: disable=protected-access
     return gen_dataset_ops.scan_dataset(
         input_t,
         nest.flatten(sparse.serialize_sparse_tensors(self._initial_state)),
         self._scan_func.captured_inputs,
         f=self._scan_func,
         **dataset_ops.flat_structure(self))
Example #38
0
 def _as_variant_tensor(self):
     # pylint: disable=protected-access
     return (gen_experimental_dataset_ops.
             experimental_directed_interleave_dataset(
                 self._selector_input._variant_tensor, [
                     data_input._variant_tensor
                     for data_input in self._data_inputs
                 ], **dataset_ops.flat_structure(self)))
Example #39
0
 def _as_variant_tensor(self):
     input_t = self._input_dataset._as_variant_tensor()  # pylint: disable=protected-access
     return ged_ops.experimental_map_dataset(
         input_t,
         self._map_func.captured_inputs,
         f=self._map_func,
         use_inter_op_parallelism=self._use_inter_op_parallelism,
         **dataset_ops.flat_structure(self))
Example #40
0
  def __init__(self, input_dataset, path):
    self._input_dataset = input_dataset
    self._path = ops.convert_to_tensor(path, dtype=dtypes.string, name="path")

    variant_tensor = ged_ops.snapshot_dataset(
        self._input_dataset._variant_tensor,  # pylint: disable=protected-access
        path=self._path,
        **dataset_ops.flat_structure(self))
    super(_SnapshotDataset, self).__init__(input_dataset, variant_tensor)
Example #41
0
 def __init__(self, input_dataset, op_function, tag):
   self._input_dataset = input_dataset
   self._op_function = op_function
   self._tag = ops.convert_to_tensor(tag, dtype=dtypes.string)
   variant_tensor = self._op_function(
       self._input_dataset._variant_tensor,  # pylint: disable=protected-access
       self._tag,
       **dataset_ops.flat_structure(self))
   super(_StatsDataset, self).__init__(input_dataset, variant_tensor)
Example #42
0
 def _as_variant_tensor(self):
     input_t = self._input_dataset._as_variant_tensor()  # pylint: disable=protected-access
     return gen_experimental_dataset_ops.experimental_scan_dataset(
         input_t,
         nest.flatten(sparse.serialize_sparse_tensors(self._initial_state)),
         self._scan_func.function.captured_inputs,
         f=self._scan_func.function,
         preserve_cardinality=True,
         **dataset_ops.flat_structure(self))
Example #43
0
 def __init__(self, input_dataset, op_function, tag):
     self._input_dataset = input_dataset
     self._op_function = op_function
     self._tag = ops.convert_to_tensor(tag, dtype=dtypes.string)
     variant_tensor = self._op_function(
         self._input_dataset._variant_tensor,  # pylint: disable=protected-access
         self._tag,
         **dataset_ops.flat_structure(self))
     super(_StatsDataset, self).__init__(input_dataset, variant_tensor)
Example #44
0
  def __init__(self, input_dataset, path):
    self._input_dataset = input_dataset
    self._path = ops.convert_to_tensor(path, dtype=dtypes.string, name="path")

    variant_tensor = ged_ops.snapshot_dataset(
        self._input_dataset._variant_tensor,  # pylint: disable=protected-access
        path=self._path,
        **dataset_ops.flat_structure(self))
    super(_SnapshotDataset, self).__init__(input_dataset, variant_tensor)
Example #45
0
 def _as_variant_tensor(self):
   return gen_dataset_ops.group_by_window_dataset(
       self._input_dataset._as_variant_tensor(),  # pylint: disable=protected-access
       self._key_func.captured_inputs,
       self._reduce_func.captured_inputs,
       self._window_size_func.captured_inputs,
       key_func=self._key_func,
       reduce_func=self._reduce_func,
       window_size_func=self._window_size_func,
       **dataset_ops.flat_structure(self))
Example #46
0
 def _as_variant_tensor(self):
     return gen_dataset_ops.parse_example_dataset(
         self._input_dataset._as_variant_tensor(),  # pylint: disable=protected-access
         self._num_parallel_calls,
         self._dense_defaults,
         self._sparse_keys,
         self._dense_keys,
         self._sparse_types,
         self._dense_shapes,
         **dataset_ops.flat_structure(self))
Example #47
0
 def _as_variant_tensor(self):
   return gen_dataset_ops.parse_example_dataset(
       self._input_dataset._as_variant_tensor(),  # pylint: disable=protected-access
       self._num_parallel_calls,
       self._dense_defaults,
       self._sparse_keys,
       self._dense_keys,
       self._sparse_types,
       self._dense_shapes,
       **dataset_ops.flat_structure(self))
Example #48
0
 def _as_variant_tensor(self):
     # pylint: disable=protected-access
     input_resource = self._input_dataset._as_variant_tensor()
     return gen_dataset_ops.shuffle_and_repeat_dataset(
         input_resource,
         buffer_size=self._buffer_size,
         count=self._count,
         seed=self._seed,
         seed2=self._seed2,
         **dataset_ops.flat_structure(self))
Example #49
0
  def __init__(self, input_dataset, num_workers, index):
    self._input_dataset = input_dataset

    self._structure = input_dataset._element_structure  # pylint: disable=protected-access
    variant_tensor = ged_ops.experimental_auto_shard_dataset(
        self._input_dataset._variant_tensor,  # pylint: disable=protected-access
        num_workers=num_workers,
        index=index,
        **dataset_ops.flat_structure(self))
    super(_AutoShardDataset, self).__init__(input_dataset, variant_tensor)
Example #50
0
 def _as_variant_tensor(self):
     with ops.device(self._target_device):
         return gen_dataset_ops.generator_dataset(
             self._init_captured_args,
             self._next_captured_args,
             self._finalize_captured_args,
             init_func=self._init_func,
             next_func=self._next_func,
             finalize_func=self._finalize_func,
             **dataset_ops.flat_structure(self))
Example #51
0
    def __init__(self, input_dataset, num_workers, index):
        self._input_dataset = input_dataset

        self._structure = input_dataset._element_structure  # pylint: disable=protected-access
        variant_tensor = ged_ops.experimental_auto_shard_dataset(
            self._input_dataset._variant_tensor,  # pylint: disable=protected-access
            num_workers=num_workers,
            index=index,
            **dataset_ops.flat_structure(self))
        super(_AutoShardDataset, self).__init__(input_dataset, variant_tensor)
Example #52
0
 def _as_variant_tensor(self):
     return gen_dataset_ops.group_by_window_dataset(
         self._input_dataset._as_variant_tensor(),  # pylint: disable=protected-access
         self._key_func.captured_inputs,
         self._reduce_func.captured_inputs,
         self._window_size_func.captured_inputs,
         key_func=self._key_func,
         reduce_func=self._reduce_func,
         window_size_func=self._window_size_func,
         **dataset_ops.flat_structure(self))
Example #53
0
 def _as_variant_tensor(self):
   # pylint: disable=protected-access
   input_resource = self._input_dataset._as_variant_tensor()
   return gen_dataset_ops.shuffle_and_repeat_dataset(
       input_resource,
       buffer_size=self._buffer_size,
       count=self._count,
       seed=self._seed,
       seed2=self._seed2,
       **dataset_ops.flat_structure(self))
Example #54
0
 def _as_variant_tensor(self):
   # pylint: disable=protected-access
   return ged_ops.experimental_map_and_batch_dataset(
       self._input_dataset._as_variant_tensor(),
       self._map_func.function.captured_inputs,
       f=self._map_func.function,
       batch_size=self._batch_size_t,
       num_parallel_calls=self._num_parallel_calls_t,
       drop_remainder=self._drop_remainder_t,
       **dataset_ops.flat_structure(structure=self._output_structure))
Example #55
0
 def _as_variant_tensor(self):
   # pylint: disable=protected-access
   input_resource = self._input_dataset._as_variant_tensor()
   return gen_dataset_ops.map_and_batch_dataset_v2(
       input_resource,
       self._map_func.captured_inputs,
       f=self._map_func,
       batch_size=self._batch_size_t,
       num_parallel_calls=self._num_parallel_calls_t,
       drop_remainder=self._drop_remainder_t,
       **dataset_ops.flat_structure(self))
Example #56
0
 def _as_variant_tensor(self):
   return ged_ops.experimental_group_by_reducer_dataset(
       self._input_dataset._as_variant_tensor(),  # pylint: disable=protected-access
       self._key_func.function.captured_inputs,
       self._init_func.function.captured_inputs,
       self._reduce_func.function.captured_inputs,
       self._finalize_func.function.captured_inputs,
       key_func=self._key_func.function,
       init_func=self._init_func.function,
       reduce_func=self._reduce_func.function,
       finalize_func=self._finalize_func.function,
       **dataset_ops.flat_structure(self))
Example #57
0
    def _init_func():
      """Creates an iterator for the input dataset.

      Returns:
        A `string` tensor that encapsulates the iterator created.
      """
      ds_variant = gen_dataset_ops.unwrap_dataset_variant(wrap_ds_variant)
      resource = gen_dataset_ops.anonymous_iterator(
          **dataset_ops.flat_structure(self._input_dataset))
      with ops.control_dependencies(
          [gen_dataset_ops.make_iterator(ds_variant, resource)]):
        return gen_dataset_ops.iterator_to_string_handle(resource)
Example #58
0
 def _as_variant_tensor(self):
   # pylint: disable=protected-access
   return ged_ops.experimental_parallel_interleave_dataset(
       self._input_dataset._as_variant_tensor(),
       self._map_func.function.captured_inputs,
       self._cycle_length,
       self._block_length,
       self._sloppy,
       self._buffer_output_elements,
       self._prefetch_input_elements,
       f=self._map_func.function,
       **dataset_ops.flat_structure(structure=self._output_structure))
Example #59
0
 def __init__(self, input_dataset):
   """See `unique()` for details."""
   self._input_dataset = input_dataset
   if input_dataset.output_types not in (dtypes.int32, dtypes.int64,
                                         dtypes.string):
     raise TypeError(
         "`tf.data.experimental.unique()` only supports inputs with a single "
         "`tf.int32`, `tf.int64`, or `tf.string` component.")
   variant_tensor = gen_experimental_dataset_ops.experimental_unique_dataset(
       self._input_dataset._variant_tensor,  # pylint: disable=protected-access
       **dataset_ops.flat_structure(self))
   super(_UniqueDataset, self).__init__(input_dataset, variant_tensor)