[bottom-up-attention] 提取object-level features问题汇总

2023-05-16

问题1
执行generate_tsv.py时,出现以下异常信息

Traceback (most recent call last):
File "./tools/generate_tsv.py", line 26, in
from fast_rcnn.test import im_detect,_get_blobs
File "/home/vilbert_beta/bottom-up-attention/tools/../lib/fast_rcnn/test.py", line 17, in
from fast_rcnn.nms_wrapper import nms, soft_nms
File "/home/vilbert_beta/bottom-up-attention/tools/../lib/fast_rcnn/nms_wrapper.py", line 9, in
from nms.gpu_nms import gpu_nms
ImportError: No module named gpu_nms

参考解决方案
进入${PROJ_ROOT}/lib目录中,执行make,编译Cython。
有个要注意的点,这里边有个Makefile文件,使用了Python解释器,这个Python的版本要根据自己使用的环境更改(Python2或者Python3)。笔者因为安装的是Python2.7版本的Caffe,这里Makefile中相应的要改成Python2.

问题2

I1220 20:57:09.543572 31027 net.cpp:139] Memory required for data: 328953868
I1220 20:57:09.543576 31027 layer_factory.hpp:77] Creating layer res4b21_branch2a
I1220 20:57:09.543583 31027 net.cpp:86] Creating Layer res4b21_branch2a
I1220 20:57:09.543586 31027 net.cpp:408] res4b21_branch2a <- res4b20_res4b20_relu_0_split_0
I1220 20:57:09.543591 31027 net.cpp:382] res4b21_branch2a -> res4b21_branch2a
F1220 20:57:09.549834 31027 cudnn_conv_layer.cpp:53] Check failed: status == CUDNN_STATUS_SUCCESS (4 vs. 0)  CUDNN_STATUS_INTERNAL_ERROR
*** Check failure stack trace: ***
Aborted (core dumped)

出现这个错误的原因有很多,内存溢出、权限不够等等。
Check failed: status == CUDNN_STATUS_SUCCESS (4 vs. 0) CUDNN_STATUS_INTERNAL_ERROR
笔者此处应该是权限问题导致的(权限问题在Caffe中很常见吗?),执行脚本时需要加上sudo。

sudo python2 ./tools/generate_tsv.py --cfg experiments/cfgs/faster_rcnn_end2end_resnet.yml --def models/vg/ResNet-101/faster_rcnn_end2end_final/test.prototxt --out feature/VCR/VCR_resnet101_faster_rcnn_genome.tsv --net data/faster_rcnn_models/resnet101_faster_rcnn_final.caffemodel --total_group 1 --group_id 0 --split VCR --gpu 0,1,2,3,4

问题3

AttributeError: 'NoneType' object has no attribute 'astype'

错误原因:
读取图像数据的路径没有写对,故读出的是空数据,自然为’NoneType’,需填写自己机器上实际的数据存放路径来进行数据加载

问题4
将Caffe提取好的.tsv格式的视觉特征转成lmdb格式时,LMDB文件占用内存过大,导致写入LMDB还未完成进程就被杀死。
solution:
这篇给出的解决方案,根据大牛的解释,使用文件备份内存映射,相当于增加一个"写回缓存",以解决内存不足的问题。(这种方式转换的lmdb文件能正常使用,不过生成的lmdb文件的体积与设置的map_size参数有关)
最终是通过给docker提高内存上限来转换的

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[bottom-up-attention] 提取object-level features问题汇总 的相关文章

随机推荐