在 lmdb 中压缩数据的最佳方法是什么
What is the best way to compress my data in lmdb
我有一个很大的数据集,这使得我的 lmdb 很大。对于 16.000 个样本,我的数据库已经是 20 GB。但我总共有 800.000 张图像,这些图像最终会产生大量数据。有什么办法可以压缩 lmdb 吗?还是使用 HDF5 文件更好?我想知道是否有人知道这个问题的最佳解决方案。
有多种技术可以减少输入大小,但其中大部分取决于您的应用程序。例如,ILSVRC-2012 数据集图像的大小可以调整为大约 256x256 像素,而不会对训练时间或模型精度产生不良影响。这将数据集从 240Gb 减少到 40Gb。您的数据集会因为简单的 "physical" 压缩而失去保真度吗?您必须拥有多小的数据集?
恐怕我对 HDF5 文件的处理还不够多,无法得出明智的意见。
如果您查看 io.cpp
中的 ReadImageToDatum
函数,它可以将图像保存为压缩 (jpg/png) 格式或原始格式。要使用压缩格式,您可以使用 cv::imencode
压缩加载的图像。现在您只需将数据设置为压缩数据并设置 encoded
标志。然后你可以将数据存储在 lmdb
.
我有一个很大的数据集,这使得我的 lmdb 很大。对于 16.000 个样本,我的数据库已经是 20 GB。但我总共有 800.000 张图像,这些图像最终会产生大量数据。有什么办法可以压缩 lmdb 吗?还是使用 HDF5 文件更好?我想知道是否有人知道这个问题的最佳解决方案。
有多种技术可以减少输入大小,但其中大部分取决于您的应用程序。例如,ILSVRC-2012 数据集图像的大小可以调整为大约 256x256 像素,而不会对训练时间或模型精度产生不良影响。这将数据集从 240Gb 减少到 40Gb。您的数据集会因为简单的 "physical" 压缩而失去保真度吗?您必须拥有多小的数据集?
恐怕我对 HDF5 文件的处理还不够多,无法得出明智的意见。
如果您查看 io.cpp
中的 ReadImageToDatum
函数,它可以将图像保存为压缩 (jpg/png) 格式或原始格式。要使用压缩格式,您可以使用 cv::imencode
压缩加载的图像。现在您只需将数据设置为压缩数据并设置 encoded
标志。然后你可以将数据存储在 lmdb
.