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)
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 _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)))
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))
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)
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)
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))
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)
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))
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))
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)
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))
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)
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)
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)
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))
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))
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)
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))
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)
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)
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)
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)
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)
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)
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)
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)
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))
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)
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)
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)
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))
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)))
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))
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)
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)
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))
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)
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)
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))
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))
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))
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))
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)
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))
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)
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))
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))
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))
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))
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))
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)
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))
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)