Chinese-CLIP icon indicating copy to clipboard operation
Chinese-CLIP copied to clipboard

使用build_lmdb_dataset.py脚本转换lmdb文件的问题

Open byraid218 opened this issue 10 months ago • 13 comments

我在使用build_lmdb_dataset.py时发生了如下报错 Traceback (most recent call last): File "...\cn_clip\preprocess\build_lmdb_dataset.py", line 50, in env_img = lmdb.open(lmdb_img, map_size=1024**4) lmdb.Error: ...DATAPATH/datasets/TBear_small\lmdb\test\imgs: \ufffd\ufffd\ufffd\u033f\u057c\u4cbb\ufffd\u3863 请问是我的前一步数据处理有问题吗

byraid218 avatar Apr 05 '24 16:04 byraid218

我搜到的是因为map_size开太大,超过硬盘容量,但是我也不知道多大的容量合适,才不会影响数据的处理

byraid218 avatar Apr 05 '24 17:04 byraid218

#1024**4大概是1TB,1024**3是1GB,可以根据数据集大小调整这个的大小

diodeshing avatar Apr 16 '24 12:04 diodeshing

可能是磁盘总空间不到1TB不能用1024**4,我是用了map_size=9000000000,这个问题就没再出现了。这个数不行的话可以尝试往小一点设置

Scau-Guang avatar Apr 20 '24 14:04 Scau-Guang

我也是一模一样的错误,我将map_size改动后,即改动成了我当前路径的存储磁盘所支持的大小,但是发现它依然会提出同样的错误,而且生成的lmdb文件会精准的占掉我所设置的硬盘大小,比如我设置为30*1024**3,就是30GB,它生成的lmdb文件夹里面的test文件会直接占掉30GB,然后处理到train的时候还是会报错,我就很迷惑,这算什么回事?

SLDatlantis avatar Apr 24 '24 09:04 SLDatlantis

我也是一模一样的错误,我将map_size改动后,即改动成了我当前路径的存储磁盘所支持的大小,但是发现它依然会提出同样的错误,而且生成的lmdb文件会精准的占掉我所设置的硬盘大小,比如我设置为30*1024**3,就是30GB,它生成的lmdb文件夹里面的test文件会直接占掉30GB,然后处理到train的时候还是会报错,我就很迷惑,这算什么回事?

我也是一模一样的错误,我将map_size改动后,即改动成了我当前路径的存储磁盘所支持的大小,但是发现它依然会提出同样的错误,而且生成的lmdb文件会精准的占掉我所设置的硬盘大小,比如我设置为30*1024**3,就是30GB,它生成的lmdb文件夹里面的test文件会直接占掉30GB,然后处理到train的时候还是会报错,我就很迷惑,这算什么回事?

首先,这个设置大小,类似申请空间放置数据,就是申请多少就占用多少,然后train还报错,可能是数据集太大,也可能是没有那么多空间了。

diodeshing avatar Apr 27 '24 01:04 diodeshing

谢谢各位的解答,后来我把mapsize调成2GB就好了。然后随着数据集的增大,有时候mapsize开小了,他并不会报错,依然能按照流程跑完图文检索,但是答案似乎会不正确,继续调大mapsize就又好了,希望也能帮到各位。

byraid218 avatar Apr 28 '24 15:04 byraid218

我的原始数据为1.56G,利用build_lmdb_dataset.py脚本在windows系统下转换时我开辟一个2T的空间也会被占满,但是我在linux系统下生成的lmdb文件也只有3G大小。请问这是为什么?

wangly1998 avatar May 26 '24 09:05 wangly1998

我的原始数据为1.56G,利用build_lmdb_dataset.py脚本在windows系统下转换时我开辟一个2T的空间也会被占满,但是我在linux系统下生成的lmdb文件也只有3G大小。请问这是为什么?

是的,非常的奇妙,果真是对windows不那么友好呢,我在windows上怎么更改设置都不行,总是会发出一样的错误,但是一转到Ubuntu系统上运行就完全没有任何问题,非常不解。

SLDatlantis avatar May 26 '24 12:05 SLDatlantis

为什么我生成的train文件夹里的lmdb和valid文件夹里的lmdb文件内存都一样大哇

luoxinggyyy avatar May 31 '24 01:05 luoxinggyyy

wroug 并且报错,这是为啥呢

luoxinggyyy avatar May 31 '24 01:05 luoxinggyyy

wroug 并且报错,这是为啥呢

image 可以试着看一下数据集,是不是他推荐的格式。

diodeshing avatar May 31 '24 02:05 diodeshing

为什么我生成的train文件夹里的lmdb和valid文件夹里的lmdb文件内存都一样大哇

image 调整代码里面数据库的大小,然后根据这个参数,先生成大的train,调小占用空间,再生成valid、和test。

diodeshing avatar May 31 '24 02:05 diodeshing

为什么我生成的train文件夹里的lmdb和valid文件夹里的lmdb文件内存都一样大哇

image 调整代码里面数据库的大小,然后根据这个参数,先生成大的train,调小占用空间,再生成valid、和test。

谢谢您的建议,我在自己的数据集上已经跑通了,还想请教您一个问题。就是这个项目得到的图文特征后可以做image caption吗,就是对图片生成一段图片描述 再次感谢您

luoxinggyyy avatar May 31 '24 05:05 luoxinggyyy