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

tf.data.FixedLengthRecordDataset

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

Un Dataset de registros de longitud fija de uno o más archivos binarios.

filenames A tf.string tensor o tf.data.Dataset contiene uno o más nombres de archivo.
record_bytes Un tf.int64 escalar que representa el número de bytes en cada registro.
header_bytes (Opcional.) Un tf.int64 escalar que representa el número de bytes para saltar al comienzo de un archivo.
footer_bytes (Opcional.) A tf.int64 escalar que representa el número de bytes a ignorar al final de un archivo.
buffer_size (Opcional.) A tf.int64 escalar que representa el número de bytes para amortiguar al leer.
compression_type (Opcional.) A tf.string escalar evaluar a una de "" (sin compresión), "ZLIB" , o "GZIP" .
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 un 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