Tengo un .tfrecord pero no sé cómo está estructurado. ¿Cómo puedo inspeccionar el esquema para comprender qué contiene el archivo .tfrecord ?
Todas las respuestas o documentación de Stackoverflow parecen asumir que conozco la estructura del archivo.
reader = tf.TFRecordReader() file = tf.train.string_input_producer("record.tfrecord") _, serialized_record = reader.read(file) ...HOW TO INSPECT serialized_record...¡Lo encontré!
import tensorflow as tf for example in tf.python_io.tf_record_iterator("data/foobar.tfrecord"): print(tf.train.Example.FromString(example))También puedes agregar:
from google.protobuf.json_format import MessageToJson ... jsonMessage = MessageToJson(tf.train.Example.FromString(example))Las soluciones anteriores no me funcionaron, así que para TF 2.0 use esto:
import tensorflow as tf raw_dataset = tf.data.TFRecordDataset("path-to-file") for raw_record in raw_dataset.take(1): example = tf.train.Example() example.ParseFromString(raw_record.numpy()) print(example)https://www.tensorflow.org/tutorials/load_data/tfrecord#reading_a_tfrecord_file_2
Si su .tftrecord contiene SequenceExample, la respuesta aceptada no le mostrará todo. Puedes usar:
import tensorflow as tf for example in tf.python_io.tf_record_iterator("data/foobar.tfrecord"): result = tf.train.SequenceExample.FromString(example) break print(result)Esto le mostrará el contenido del primer ejemplo.
Luego, también puede inspeccionar funciones individuales usando sus claves:
result.context.feature["foo_key"]Y para las listas de características:
result.feature_lists.feature_list["bar_key"]