2016-08-30 78 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運行時解壓縮並填充隊列等),您只需在開始時真正注意它。

相關問題