问题描述
我将一些相当大的 Pandas 数据帧导出为 Tensorflow 的序列化格式。而且我经常这样做,而且真的很慢。这可能是因为我必须序列化单个示例 idk。另外,我使用“GZIP”选项压缩文件。
我在文档中找到了 TFRecordWriter 的一些选项,它们看起来可能有帮助(缓冲区有帮助,对吧?)。
但是没有解释 input_buffer_size
的作用或值可能采用的范围。是 {0,1,2,3} 还是几百万?还是我想要 output_buffer_size
或 mem_level
或其他东西?
来自Tensorflow 2.5 documentation:
Args
compression_type "GZIP","ZLIB",or "" (no compression).
flush_mode flush mode or None,Default: Z_NO_FLUSH.
input_buffer_size int or None.
output_buffer_size int or None.
window_bits int or None.
compression_level 0 to 9,or None.
compression_method compression method or None.
mem_level 1 to 9,or None.
compression_strategy strategy or None. Default: Z_DEFAULT_STRATEGY.
解决方法
tf_record.py 中给出了一些描述。这将指向提供更完整信息的 zlib 库。
遗憾的是,文本在 __init__()
方法中,因此似乎没有出现在 Tensorflow 自动文档中
我不会发布“答案”,因为一旦找到链接就可以轻松阅读评论,而且它们将比我写的任何内容都更准确。
请注意,*_buffer_size 的默认值是 25,600。