错误1:
运行
./data/VOC0712/create_data.sh
出现SSD from caffe.proto import caffe_pb2 ImportError: No module named caffe.proto
解决方法1:
1.打开 ~/caffe-ssd/scripts/create_annoset.py 文件。
2.在import sys和from caffe.proto import caffe_pb2这两段代码中间插入sys.path.insert(0,’/home/xxx/caffe_ssd/ python’)这句代码,xxx为你们自己的用户名。
如下图所示:
解决方法2:
在终端执行以下指令:
export PYTHONPATH=($CAFFE_ROOT)/python:$PYTHONPATH
caffe_root是ssd需要用到caffe的路径。
不过这个方法有个弊端。就是在每次执行creat_data.sh生成lmdb的时候都需要进行上述操作。
错误2:
ImportError: 'No module named skimage.io'
解决:
sudo apt-get install python-skimage
错误3:
Linux(Ubuntu) :ImportError: No module named google.protobuf.internal
解决:
sudo apt-get install python-protobuf
错误4:
运行
python examples/ssd/ssd_pascal.py
出现Check failed: error == cudaSuccess (10 vs. 0) invalid device ordinal
解决:
如果你只有一个GPU, 需要修改285行:
gpus=”0,1,2,3” ===> 改为”0”
否则,训练的时候会出错。
错误5:
运行
python examples/ssd/ssd_pascal.py
出现Check failed: error == cudaSuccess (2 vs. 0) out of memory
解决:
执行nvidia-smi
发现内存基本没用,那是什么原因呢?原因在于ssd_pascal.py文件中batch_size过大。
把batch_size和accum_batch_size同时按倍数缩小,我把32改成了16,缩小一倍,如图:
再运行
下图是batch_size=16跑起来的内存情况,简直爆炸:
迭代120000次,训练接近1天,损失值2.3左右。
错误6:
ImportError: No module named caffe
解决:
sudo vim ~/.bashrc
最后一行加入:
export PYTHONPATH=~/caffe/python:$PYTHONPATH
source ~/.bashrc
qt+caffe_ssd:
错误7:
error while loading shared libraries :libcaffe.so.10.0-rc3:cannot open share
解决:
cd /etc/ld.so.conf.d
sudo gedit caffe.conf
# 打开的的conf文件加入/home/mx/caffe/.build_release/lib,保存退出
sudo ldconfig
错误8:
detection_output_layer.cpp:81] Check failed: infile.good() Failed to open name size file: data/VOC0712/test_name_size.txt
detection_output_layer.cpp:81] Check failed: infile.good() Failed to open name size file: data/VOC0712/labelmap_voc.prototxt
detection_output_layer.cpp:81] Check failed: infile.good() Failed to open name size file: /data/VOCdevkit/results/VOC2007/SSD_300x300/Main
解决:
cd /home/bjw/caffe/models/VGGNet/VOC0712/SSD_300x300/
sudo gedit deploy.prototxt
改成绝对路径