OFA-Sys / Chinese-CLIP

Chinese version of CLIP which achieves Chinese cross-modal retrieval and representation generation.
MIT License
4.38k stars 453 forks source link

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

Open byraid218 opened 6 months ago

byraid218 commented 6 months ago

我在使用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 commented 6 months ago

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

diodeshing commented 5 months ago

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

Scau-Guang commented 5 months ago

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

SLDatlantis commented 5 months ago

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

diodeshing commented 5 months ago

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

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

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

byraid218 commented 5 months ago

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

wangly1998 commented 4 months ago

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

SLDatlantis commented 4 months ago

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

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

luoxinggyyy commented 4 months ago

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

luoxinggyyy commented 4 months ago

wroug 并且报错,这是为啥呢

diodeshing commented 4 months ago

wroug 并且报错,这是为啥呢

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

diodeshing commented 4 months ago

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

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

luoxinggyyy commented 4 months ago

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

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

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