- boost版本问题
>>> import caffe
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/ubuntu/caffe/python/caffe/__init__.py", line 1, in <module>
from .pycaffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, RMSPropSolver, AdaDeltaSolver, AdamSolver, NCCL, Timer
File "/home/ubuntu/caffe/python/caffe/pycaffe.py", line 13, in <module>
from ._caffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, \
ImportError: /home/ubuntu/caffe/python/caffe/_caffe.so: undefined symbol: _ZN5boost6python6detail11init_moduleER11PyModuleDefPFvvE
因为我是在anaconda3的基础上安装python的,所以需要
在makefile.config中找到PYTHON_LIBRARIES :=boost_python3 python3.5m
将其注释取消,如果不取消默认为boost_python python2.7
(在makefile中可看到)
但是这样配置之后你可能会在make pycaffe
时出现/usr/bin/ld: 找不到 -lboost_python3
我进行了两步操作,可以供参考:
第一步:在/usr/lib/x86_64-linux-gnu/
中查找你的boost_python的具体版本号,我的是libboost_python-py35.so所以将PYTHON_LIBRARIES :=boost_python3 python3.5m
更改为PYTHON_LIBRARIES :=boost_python-py35 python3.5m
第二步:在终端执行
sudo ln /usr/lib/x86_64-linux-gnu/libboost_python-py35.so /usr/local/lib/libboost_python3.so
所以我也不太清楚是那一步起到作用,或者是两者皆可
2. 执行make runtest
时出现GPU内存无法正常使用问题
Check failed: status == CUDNN_STATUS_SUCCESS (3 vs. 0) CUDNN_STATUS_BAD_PARAM
修改makefile.config,修改后为:
CUDA_ARCH := -gencode arch=compute_50,code=sm_50 \
-gencode arch=compute_52,code=sm_52 \
-gencode arch=compute_60,code=sm_60 \
-gencode arch=compute_61,code=sm_61 \
-gencode arch=compute_61,code=compute_61