tensorflow - 为什么 'tf.python_io.TFRecordWriter' 在 TensorFlow 中如此缓慢和存储消耗?

标签 tensorflow

我将使用 this code 写入 TFRecord 文件:

  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 的进程并压缩结果吗?

最佳答案

我不知道速度问题,但你可以事后压缩 - 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 工作时解压并填充您的队列等)。

关于tensorflow - 为什么 'tf.python_io.TFRecordWriter' 在 TensorFlow 中如此缓慢和存储消耗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39235303/

相关文章:

tensorflow - 了解openAI 5的模型(1024单元LSTM强化学习)

python-3.x - 失败前提条件错误: Table already initialized

python - TensorFlow 中的硬限制/阈值激活函数

machine-learning - Tensorflow-如何使用完整批处理的 MNIST 数据集?

python - TensorFlow 对象检测 API 中用于平衡数据的类权重

tensorflow - 在 AdamOptimizer 中使用动态学习率有意义吗?

machine-learning - Keras——没有带有广播的 Dot 层?

python - tf.data.Dataset.map() 用于由多个切片组成的数据集

tensorflow - 如何保证训练阶段不会出现OOM?

python - (MNIST - GAN)第一次迭代后鉴别器和生成器误差下降到接近于零