1.GPU显存不足无法运行模型:
Cannot create Cublas handle. Cublas won't be available.
E1219 17:43:06.398439 3214 common.cpp:121] Cannot create Curand generator. Curand won't be available.
F1219 17:43:06.401962 3214 benchmark.cpp:112] Check failed: error == cudaSuccess (2 vs. 0) out of memory
解决:首先使用nvidia-smi命令来检查显卡的运行状态,当电脑中有多个GPU时,caffe是默认使用GPU0的,尤其是在服务器上,大家都默认使用GPU0时,会极大可能的导致GPU0显存过满。若确定问题是这个,则可以运行如下指令进行GPU的切换:
bash ./build/tools/caffe train --solver=examples/testXXX/solver.prototxt --gpu 1
若想指定同时使用几个GPU:
bash ./build/tools/caffe train --solver=examples/testXXX/solver.prototxt --gpu 0,1,2,3
若想使用所有的GPU,则可以运行如下指令:
bash ./build/tools/caffe train --solver=examples/testXXX/solver.prototxt --gpu all
该问题在make runtest -j6时依然存在,此时需要先在caffe目录下输入以下指令:
export CUDA_VISIBLE_DEVICES=0
其中那个0是你要指定的显卡编号,不然runtest会在中间失败,并报与此之前相同的错误。
2.anaconda3与pycaffe的python2.7相冲突的问题:
caffe与python2.7匹配的很好,但如果你安装了anaconda3的话他默认是会把python3添加到环境变量中去的,这样会造成以下几个问题:
(1).在caffe目录下,你输入pythpn,然后import caffe会造成失败
(2).在用户目录下,你输入python,然后import caffe会成功,但如果你在之后去使用caffe的函数的话,你就会发现会报错,找不到相应的函数,这应该就是python3与caffe相不匹配的地方了吧。
那如何解决这种问题呢,就是要采用系统安装的python2.7。
(1).在命令行输入
export PYTHONPATH=~/caffe/python
然后在caffe目录下输入python2.7,之后你再import caffe就会发现一切正常了。
(2).cd caffe/python,在该目录下之间输入python2.7,然后也可以正常import caffe。
3.pip2与pip3
在同时安装了anaconda3与python2.7的情况下,pip2是对应python2.7的,pip3则是对应python3的
对于服务器的非root用户来讲,使用pip2来安装库是要注意一个细节,,举例如下:
pip2 install pandas --user