TFRecordOptions 的参数实际上是什么意思wrt tf.io.TFRecordWriter?

问题描述

我将一些相当大的 Pandas 数据帧导出为 Tensorflow 的序列化格式。而且我经常这样做,而且真的很慢。这可能是因为我必须序列化单个示例 idk。另外,我使用“GZIP”选项压缩文件

我在文档中找到了 TFRecordWriter 的一些选项,它们看起来可能有帮助(缓冲区有帮助,对吧?)。 但是没有解释 input_buffer_size 的作用或值可能采用的范围。是 {0,1,2,3} 还是几百万?还是我想要 output_buffer_sizemem_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。