2016-08-30 173 views
2

我打算写TFRecord文件使用this code到:为什么'tf.python_io.TFRecordWriter'在TensorFlow中如此缓慢和存储 - 消耗?

writer = tf.python_io.TFRecordWriter(output_filename) 
    print("Creating TFRecords file at {}...".format(output_filename)) 
    for i, row in enumerate(create_csv_iter(input_filename)): 
    x = example_fn(row) 
    writer.write(x.SerializeToString()) 
writer.close() 

的问题是,这个过程是非常缓慢的,这样,它不是可行的几天甚至写一个大的数据集! 这只是一个序列化到磁盘的作家。为什么这么慢?!另一个问题是输出文件的大小比原始文件大10倍!

你知道有什么方法来加速TFRecordWriter的过程并压缩结果吗?

回答

0

我不知道速度问题,但您可以在事实后进行压缩 - TFRecordReader支持GZIP和ZLIB压缩,例如,

reader = tf.TFRecordReader(
     options=tf.python_io.TFRecordOptions(
      compression_type=tf.python_io.TFRecordCompressionType.ZLIB 
     ) 
    ) 
    _, tfrecord = reader.read(file_queue) 
    # etc. 

查看更多here。减压需要一点时间,但是如果您使用TF批处理系统(因此CPU内核可以在GPU运行时解压缩并填充队列等),您只需在开始时真正注意它。

相关问题