以下安装都是在我以前安装的基础上安装的
1.安装依赖:
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install git cmake build-essential
到此为止安装依赖完成,接下来安装opencv3.4.1,在此之前我已经安装了python3.6.4,cuda和cudnn.即相关的python包,可以参照前面的教程.
2.安装opencv
进入官网 : http://opencv.org/releases.html , 选择 3.4.1 版本的 source,并下载,解压到你要安装的位置,如/home/xiongdeng/application,然后进入到你解压的目录opencv-3.4.1,创建编译的build目录.具体命令如下:
make build #创建目录
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j8 #编译
sudo make install #安装
说明:这个过程中会有警告,但是没有错误(很幸运)
安装后的可执行文件在/usr/local/bin
安装完成后可以通过下面这两种方式来查看opencv的本版:
python也可以导入cv2包:
到此为止opencv安装完成.
3.安装caffe
3.1下载caffe,命令如下:
git clone https://github.com/BVLC/caffe.git #文件在你的home目录下,
3.2进入caffe目录,将Makefile.config.example文件复制一份名为Makefile.config的文件,具体命令如下:
cp Makefile.config.example Makefile.config
3.3修改caffe目录下Makefile.config文件,可以用这个命令打开
gedit Makefile.config
3.4修改Makefile.config文件,具体修改如下:
使用cudnn, 将
#USE_CUDNN := 1 改为 USE_CUDNN:=1 (就是去掉#)
使用opencv,将
#OPENCV_VERSION := 3 改为 OPENCV_VERSION := 3 (就是去掉#)
使用python接口,将
#WITH_PYTHON_LAYER := 1 改为 WITH_PYTHON_LAYER := 1 (就是去掉#)
修改python路径:将
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
解决cuda9.0版本问题,去掉CUDA_ARCH的前两项,修改后为:
3.4修改caffe目录下的Makefile文件:
将 NVCCFLAGS += -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS) 替换为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
将 LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5 替换为:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
3.5因为ubuntu16.04的gcc的版本是5.4.0, 如图:
所以不需要修改/usr/local/cuda/include/crt/host.config.h文件,否则需要将
#error -- unsupported GNU version! gcc versions later than 6 are not supported! 修改为
//#error -- unsupported GNU version! gcc versions later than 6 are not supported!
3.6 在/etc/ld.so.conf.d/加入创建文件cuda.conf,内容如下:
如后执行命令sudo ldconfig
说明如果不执行3.6步骤,那么后面使用sudo make runtest -j8 会报errer while loading shared libraries:libcudart.so.9.0之类的错误.如果去掉sudo, 可以执行,但是会报其他的错. 建议执行3.6后重启一下电脑,我是重启之后就好了
3.7 现在可以编译了,在caffe目录下:执行一下命令:
sduo make clean (#非必须,用于清除前面的编译文件)
sudo make all -j8
sudo make test -j8
sudo make runtest -j8
出现下面截图说明安装成功了:
4.安装pycaffe
上一步成功安装caffe之后,就可以在命令行下通过caffe命令进行操作,安装pycaffe是为了通过python来操作caffe.编译pycaffe之前需要修改配置文件Makefile.config.[说明:python3.6.4是我之前用源码的方式安装的[numpy等很多库都已经安装],而Makefile.config关于python的路径都是使用ubuntu16.04自带的python2.7,所以需要修改相关python路径],具体修改如下:
注释掉2.7
说明:这个路径是根据Makefile.config文件的注释提示来填写的,根据自己的实际情况来填写.
在Makefile文件中修改2.7为3.6
/usr/bin/ld:cannot find -lboost_python3
执行 命令:
cd /usr/lib/x86_64-linux-gnu
sudo ln -s libboost_python-py35.so libboost_python3.so
修改完后,切会到caffe目录, 执行命令:
sduo make clean (必须,用于清除前面的编译文件)
sudo make all -j8
sudo make test -j8
sudo make runtest -j8sudo make pycaffe -j8
如图,没有报任何错
到此为止pycaffe安装完成.
参考链接:https://blog.csdn.net/yhaolpz/article/details/71375762
https://blog.csdn.net/sinat_37924176/article/details/78301090