我将使用以下代码写入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()
Run Code Online (Sandbox Code Playgroud)
问题在于该过程非常缓慢,因此即使在几天内也无法编写大型数据集!它只是序列化到磁盘的写入器。为什么这么慢?另一个问题是输出文件的大小比原始文件大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.
Run Code Online (Sandbox Code Playgroud)
在这里查看更多内容。解压缩需要一些时间,但如果您使用 TF 批处理系统,您只会在开始时真正注意到它(因此 CPU 核心可以在 GPU 工作时解压缩并填充队列,等等)。
| 归档时间: |
|
| 查看次数: |
1168 次 |
| 最近记录: |