2017-02-22 1 views
7

J'ai un .tfrecord mais je ne sais pas comment il est structuré. Comment puis-je inspecter le schéma pour comprendre ce que contient le fichier .tfrecord?Comment inspecter un fichier Tensorflow .tfrecord?

Toutes les réponses Stackoverflow ou la documentation semblent supposer que je connais la structure du fichier.

reader = tf.TFRecordReader() 
file = tf.train.string_input_producer("record.tfrecord") 
_, serialized_record = reader.read(file) 

...HOW TO INSPECT serialized_record... 

Répondre

16

Trouvé!

import tensorflow as tf 

for example in tf.python_io.tf_record_iterator("data/foobar.tfrecord"): 
    result = tf.train.Example.FromString(example) 

Vous pouvez également ajouter:

from google.protobuf.json_format import MessageToJson 
... 
jsonMessage = MessageToJson(tf.train.Example.FromString(example)) 
1

Utilisez tensorflow tf.TFRecordReader avec le décodeur tf.parse_single_example comme spécifié dans https://www.tensorflow.org/programmers_guide/reading_data

PS, tfrecord contient des enregistrements « exemple » définis dans https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/example/example.proto

Une fois que vous extrayez l'enregistrement dans une chaîne, l'analyse syntaxique est quelque chose comme ça

a=tf.train.Example() 
result = a.ParseFromString(binary_string_with_example_record) 

Cependant, je ne suis pas sûr où est le support brut f ou en extrayant des enregistrements individuels d'un fichier, vous pouvez le retrouver dans TFRecordReader