六、Ubuntu16.04下CPU或GPU模式caffe安装教程

到终点了,坚持住!
我的环境是 Ubuntu16.04,opencv3.2,cuda8.0(CPU模式可以不装cuda)
特别注意的是以下是Ubuntu16.04这一特定系统的详细步骤,需要其他系统(Ubuntu14.04)可以参考这里
https://github.com/BVLC/caffe/wiki
注意右侧栏的目录,看有没有适合你的系统的。
还是推荐用Ubuntu16.04,错误少

以下步骤来自于这里,最靠谱的一个方案:
https://github.com/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-scipy

2、文件瞎JB改一改

下面下载并解压caffe,进入目录复制Makefile.config.example为Makefile.config
cp Makefile.config.example Makefile.config

2.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: libcaffe.so.1.0.0: cannot open shared object file: No such file or directory

从安装caffe的目录下建立一个软连接到系统路径里:

ln -s /home/Face_Swap_Pro/caffe-master/build/lib/libcaffe.so.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/libQt5Widgets.so.5 /usr/lib
ln -s /home/Face_Swap_Pro/qt-everywhere-opensource-src-5.6.0/qtbase/lib/libQt5Gui.so.5 /usr/lib
ln -s /home/Face_Swap_Pro/qt-everywhere-opensource-src-5.6.0/qtbase/lib/libQt5Core.so.5 /usr/lib

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值