3
votes

Comment utiliser tf.python_io.TFRecordWriter dans Tensorflow 2.0

Je souhaite convertir un fichier .csv en enregistrement TF. Mon problème maintenant, python_io n'existe pas dans Tensorflow 2.0.

I get this error:
File "generate_tfrecord.py", line 102, in <module>
main()
File "generate_tfrecord.py", line 89, in main
writer = tf.python_io.TFRecordWriter(FLAGS.output_path)
AttributeError: module 'tensorflow' has no attribute 'python_io'
     writer=tf.python_io.TFRecordWriter(FLAGS.output_path)
     path = os.path.join(FLAGS.image_dir)
     examples = pd.read_csv(FLAGS.csv_input)
     grouped = split(examples, 'filename')
     for group in grouped:
        tf_example = create_tf_example(group, path)
        writer.write(tf_example.SerializeToString())
     writer.close()
     output_path = os.path.join(os.getcwd(), FLAGS.output_path)

Que dois-je utiliser à la place?


0 commentaires

3 Réponses :


4
votes

Selon la documentation , la python Le package .io a été déplacé vers un nouveau package appelé io . Échangez-les et cela fonctionne.

writer = tf.io.TFRecordWriter(FLAGS.output_path)
# ...


0 commentaires

0
votes

Dans TF 2.0, tf.python_io.TFRecordWriter () a été changé en tf.io.TFRecordWriter()


0 commentaires

0
votes

Tf.io.TFRecordWriter est le moyen officiel d'écrire des tfrecords pour de petits ensembles de données. Vous pouvez également essayer apache beam pour paralléliser la conversion de CSV en tfrecords en CSV plus grands.

import tensorflow as tf
import numpy as np
tf.debugging.set_log_device_placement(True)

with tf.io.TFRecordWriter('data.tfrecords') as file_writer:

    x = tf.random.normal([100, 1])
    y = tf.random.normal([100, 1])

    feature = {
    "x": tf.train.Feature(float_list=tf.train.FloatList(value=x.numpy().astype(np.float))),
    "y": tf.train.Feature(float_list=tf.train.FloatList(value=y.numpy().astype(np.float)))
    }

    example = tf.train.Example(features=tf.train.Features(feature=feature))
    record_bytes = example.SerializeToString()
    file_writer.write(record_bytes)
    print(record_bytes)


0 commentaires