到终点了,坚持住!
我的环境是
Ubuntu16.04,opencv3.2,cuda8.0(CPU模式可以不装cuda)
特别注意的是以下是Ubuntu16.04这一特定系统的详细步骤,需要其他系统(Ubuntu14.04)可以参考这里
https:///BVLC/caffe/wiki
注意右侧栏的目录,看有没有适合你的系统的。
还是推荐用Ubuntu16.04,错误少
以下步骤来自于这里,最靠谱的一个方案:
https:///BVLC/caffe/wiki/Ubuntu-16.04-Installation-Guide
1、闭上眼,瞎JB安装一波
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install -y build-essential git pkg-config
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler libatlas-base-dev libboost-all-dev libgflags-dev libgoogle-glog-dev liblmdb-dev --fix-missing
sudo apt-get install -y python-pip如果是python2.7的话,装这个
sudo apt-get install -y python-dev
sudo apt-get install -y python-numpy python-scipy如果是python3.5的话,装这个
sudo apt-get install -y python3-dev
sudo apt-get install -y python3-numpy python3-scipy2、文件瞎JB改一改
下面下载并解压caffe,进入目录复制Makefile.config.example为Makefile.config
cp Makefile.config.example Makefile.config2.1改模式(CPU或者GPU)
打开Makefile.config
如果是CPU模式的话:
把“#CPU_ONLY := 1” 改成“CPU_ONLY := 1”,也就是取消注释
如果是GPU模式的话:
把“#USE_CUDNN := 1” 改成“USE_CUDNN := 1”,也就是取消注释
把“CUDA_DIR := /usr/local/cuda”改成你的cuda路径,如果是cuda8.0的话,改成“/usr/local/cuda-8.0”
2.2改python以及一些库
还是在Makefile.config里面
找到
PYTHON_INCLUDE := /usr/include/python2.7 /usr/lib/python2.7/dist-packages/numpy/core/include改成
PYTHON_INCLUDE := /usr/include/python2.7 /usr/local/lib/python2.7/dist-packages/numpy/core/include
WITH_PYTHON_LAYER := 1
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好了,到此为止!
2.3改Makefile
把Makefile文件里的
NVCCFLAGS += -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)换成:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)2.4改CMakeLists.txt
打开CMakeLists.txt
随便找个空行,加上这几句
# ---[ Includes
set(${CMAKE_CXX_FLAGS} "-D_FORCE_INLINES ${CMAKE_CXX_FLAGS}")结束!
3、安装python的依赖库
进入目录里的python路径,安装python的一些包
cd python
for req in $(cat requirements.txt); do sudo -H pip install $req --upgrade; done会自动安装
4、编译!
make all -j
make test
make runtest
make pycaffe
make install应该是没毛病的,我以前这里会碰到很多问题,大多是缺少库文件,你只要把前面让你装的东西安装了,需要改的给改了,就不会有问题。
5、让python也能用caffe!
其实现在就好了,但是python里是找不到caffe的,现在还需要最后一步——添加路径。
gedit ~/.bashrc随便找个地方加一行
export PYTHONPATH=你刚才解压的caffe的路径/caffe-master/python:$PYTHONPATH退出,使之生效:
source ~/.bashrc好了!测试下:
root@zcy:/home# python
Python 2.7.12 (default, Nov 19 2016, 06:48:10)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import caffe
>>>输入python后,import caffe 如果成功了就对了
完毕!
6、一些错误
1、错误提示fatal error: caffe/proto/caffe.pb.h: No such file or directory
fatal error: caffe/proto/caffe.pb.h: No such file or directory是丢失问题
解决方法:
用protoc从caffe/src/caffe/proto/caffe.proto生成caffe.pb.h和caffe.pb.cc
cd caffe/src/caffe/proto/这里,然后输入
protoc --cpp_out=/你的caffe目录/caffe-master/include/caffe/ caffe.proto就可以在 【/你的caffe目录/caffe-master/include/caffe】这里生成caffe.pb.h和caffe.pb.cc。
之后在
【/你的caffe目录/caffe-master/include/caffe】目录下新建文件夹,命名为proto,然后把编译出来的caffe.pb.h和caffe.pb.cc放进去就可以了
2、错误提示error while loading shared libraries: .1.0.0: cannot open shared object file: No such file or directory
从安装caffe的目录下建立一个软连接到系统路径里:
ln -s /home/Face_Swap_Pro/caffe-master/build/lib/.1.0.0 /usr/lib
以此类推,如果找不到hdf5等也是一样
ln -s /home/Face_Swap_Pro/hdf5-1.8.19/build/bin/libhdf5_cpp.so.12 /usr/lib
qt也是同理,不过这跟caffe没关系了
ln -s /home/Face_Swap_Pro/qt-everywhere-opensource-src-5.6.0/qtbase/lib/.5 /usr/lib
ln -s /home/Face_Swap_Pro/qt-everywhere-opensource-src-5.6.0/qtbase/lib/.5 /usr/lib
ln -s /home/Face_Swap_Pro/qt-everywhere-opensource-src-5.6.0/qtbase/lib/.5 /usr/lib
















