caffe配置
cp Makefile.config.example Makefile.config
vi Makefile.config
----注意看蓝字,对应的cuda版本,要删掉哪几行
----修改以下
#USE_CUDNN := 1 去掉注释
#USE_OPENCV := 1 去掉注释
----把下面这段
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
改为
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
make all,make test,make runtest,make pycaffe均不报错。对cifar10进行训练成功。
但是把这段测试cifar10的代码放进.sh里执行的话,就报错。
Traceback (most recent call last):
File “”, line 1, in
File “/home/cdli/caffe-ssd/python/caffe/init.py”, line 1, in
from .pycaffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, RMSPropSolver, AdaDeltaSolver, AdamSolver
File “/home/cdli/caffe-ssd/python/caffe/pycaffe.py”, line 13, in
from ._caffe import Net, SGDSolver, NesterovSolver, AdaGradSolver,
ImportError: dynamic module does not define module export function (PyInit__caffe)
上图的test.sh就是cifar10的测试脚本。
上网查了一下是说python3.5不行,只能用python2.7。
在命令行输入python后显示的果然是python3.5
在个人用户目录下,~/.bashrc内,添加这句:
于是命令行执行python的默认版本就是python2.7了
上述步骤执行完后,还是和第一个BUG的图1一样的结果,于是再进入python命令行,import caffe,结果如图:
没有skimage这个库。
于是上网找了之后,应在命令行输入
pip2 install scikit-image --upgrade --user
pip2的原因是:公司服务器有python3.5和python2.7
使用pip --version显示的是pip 3.5 。说明pip命令默认是将库文件下载到python3.5的文件夹里。而caffe要用的是python2.7,所以上面的命令应该要使用pip2.
但是最后,向公司一位同事请教,他说让我把代码复制到命令行试试,于是我就试了,然后成功了。。。。
至今没弄清楚为什么放sh会出错。未解之谜。