Se usó la API de Cloud Translation para traducir esta página.
Switch to English

tf.data.TextLineDataset

TensorFlow 1 versión Ver código fuente en GitHub

Un Dataset que comprende líneas de uno o más archivos de texto.

Se utiliza en los cuadernos

Se utiliza en la guía Se utiliza en los tutoriales

filenames A tf.string tensor o tf.data.Dataset contiene uno o más nombres de archivo.
compression_type (Opcional). Un tf.string escalar evaluar a una de "" (sin compresión), "ZLIB" , o "GZIP" .
buffer_size (Opcional.) A tf.int64 escalar que indica el número de bytes a búfer. Un valor de 0 resultados en los valores de tamponamiento predeterminado elegido basa en el tipo de compresión.
num_parallel_reads (Opcional.) A tf.int64 escalar que representa el número de archivos que debe leer en paralelo. Si es mayor que uno, los registros de archivos leen en paralelo se generan en un orden intercalado. Si su tubería de entrada es de E / S cuello de botella, se recomienda establecer este parámetro en un valor mayor que uno para paralelizar las E / S. Si None , los archivos se leen secuencialmente.

element_spec La especificación de tipo de un elemento de este conjunto de datos.

dataset = tf.data.Dataset.from_tensor_slices([1, 2, 3])
dataset.element_spec
TensorSpec(shape=(), dtype=tf.int32, name=None)

Métodos

apply

Ver fuente

Se aplica una función de transformación de este conjunto de datos.

apply habilita encadenamiento de encargo Dataset transformaciones, que se representan como funciones que toman un Dataset argumento y devuelven un transformado Dataset .

dataset = tf.data.Dataset.range(100)
def dataset_fn(ds):
  return ds.filter(lambda x: x < 5)
dataset = dataset.apply(dataset_fn)
list(dataset.as_numpy_iterator())
[0, 1, 2, 3, 4]

args
transformation_func Una función que toma una Dataset argumento y devuelve un Dataset .

Devoluciones
Dataset El Dataset devuelto por la aplicación de transformation_func a este conjunto de datos.

as_numpy_iterator

Ver fuente

Devuelve un iterador que convierte todos los elementos del conjunto de datos a numpy.

Utilice as_numpy_iterator para inspeccionar el contenido del conjunto de datos. Para ver formas de elementos y tipos, imprimir conjuntos de datos de elementos directamente en lugar de utilizar as_numpy_iterator .

dataset = tf.data.Dataset.from_tensor_slices([1, 2, 3])
for element in dataset:
  print(element)
tf.Tensor(1, shape=(), dtype=int32)
tf.Tensor(2, shape=(), dtype=int32)
tf.Tensor(3, shape=(), dtype=int32)

Este método requiere que se está ejecutando en modo ansiosos y element_spec del conjunto de datos contiene solamente TensorSpec componentes.

dataset = tf.data.Dataset.from_tensor_slices([1, 2, 3])
for element in dataset.as_numpy_iterator():
  print(element)
1
2
3
dataset = tf.data.Dataset.from_tensor_slices([1, 2, 3])
print(list(dataset.as_numpy_iterator()))
[1, 2, 3]

as_numpy_iterator() preservará la estructura anidada de conjuntos de datos elementos.

dataset = tf.data.Dataset.from_tensor_slices({'a': ([1, 2], [3, 4]),
                                              'b': [5, 6]})
list(dataset.as_numpy_iterator()) == [{'a': (1, 3), 'b': 5},
                                      {'a': (2, 4), 'b': 6}]
True

Devoluciones
Un iterable lo largo de los elementos del conjunto de datos, con sus tensores convertidos a arrays numpy.

aumentos
TypeError si un elemento contiene un no Tensor valor.
RuntimeError Si no está habilitada la ejecución ansiosos.

batch

Ver fuente

Combina elementos consecutivos de este conjunto de datos en lotes.

dataset = tf.data.Dataset.range(8)
dataset = dataset.batch(3)
list(dataset.as_numpy_iterator())
[array([0, 1, 2]), array([3, 4, 5]), array([6, 7])]
dataset = tf.data.Dataset.range(8)
dataset = dataset.batch(3, drop_remainder=True)
list(dataset.as_numpy_iterator())
[array([0, 1, 2]), array([3, 4, 5])]

Los componentes del elemento resultante tendrá una dimensión exterior adicional, que será batch_size (o N % batch_size para el último elemento si batch_size no divide el número de elementos de entrada N de manera uniforme y drop_remainder es False ). If your program depends on the batches having the same outer dimension, you should set the drop_remainder argument to True to prevent the smaller batch from being produced.

Args
batch_size A tf.int64 scalar tf.Tensor , representing the number of consecutive elements of this dataset to combine in a single batch.
drop_remainder (Optional.) A tf.bool scalar tf.Tensor , representing whether the last batch should be dropped in the case it has fewer than batch_size elements; the default behavior is not to drop the smaller batch.

Returns
Dataset A Dataset .

cache

View source

Caches the elements in this dataset.

The first time the dataset is iterated over, its elements will be cached either in the specified file or in memory. Subsequent iterations will use the cached data.

dataset = tf.data.Dataset.range(5)
dataset = dataset.map(lambda x: x**2)
dataset = dataset.cache()
# The first time reading through the data will generate the data using
# `range` and `map`.
list(dataset.as_numpy_iterator())
[0, 1, 4, 9, 16]
# Subsequent iterations read from the cache.
list(dataset.as_numpy_iterator())
[0, 1, 4, 9, 16]

When caching to a file, the cached data will persist across runs. Even the first iteration through the data will read from the cache file. Changing the input pipeline before the call to .cache() will have no effect until the cache file is removed or the filename is changed.

dataset = tf.data.Dataset.range(5)
dataset = dataset.cache("/path/to/file")  # doctest: +SKIP
list(dataset.as_numpy_iterator())  # doctest: +SKIP
[0, 1, 2, 3, 4]
dataset = tf.data.Dataset.range(10)
dataset = dataset.cache("/path/to/file")  # Same file! # doctest: +SKIP
list(dataset.as_numpy_iterator())  # doctest: +SKIP
[0, 1, 2, 3, 4]

Args
filename A tf.string scalar tf.Tensor , representing the name of a directory on the filesystem to use for caching elements in this Dataset. If a filename is not provided, the dataset will be cached in memory.

Returns
Dataset A Dataset .