ubantu 16.04 配置caffe问题总结

ubantu 16.04 配置caffe问题总结

ubantu 16.04配置caffe 网上的教程很多,相信大家都会遇到了很多问题,这里记录下解决的过程,一是供大家参考,二则方便以后自己查看回忆。

依赖项

1、sudo apt-get update
2 sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
3 sudo apt-get install --no-install-recommends libboost-all-dev
4 sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
5 sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

为了方便,综合为一条命令:
sudo apt-get update && sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler –no-install-recommends libboost-all-dev libopenblas-dev liblapack-dev libatlas-base-dev libgflags-dev libgoogle-glog-dev liblmdb-dev

cuda和cudnn的安装

cda和cudnn的安装,去官网下载cuda,然后下载cudnn,注意的是cudnn的版本一定要与cuda的版本一致,cuda最好下载runfile,避免各种未知的错误。

  1. cuda安装比较简单,下载的runfile时候就有安装的命令,安装时候除了driver不要安装外,其他的直接enter或者yes即可,最后一定跑一下demo,验证通过才能肯定安装成功。nvcc -V可查看版本,最后注意配置cuda环境变量。
  2. cudnn安装也一样,最主要的也是最后的demo一定要验证通过,否则也和我一样后面编译caffe的时候各种错误。

编译opencv

1、mkdir build
2、cd build
3、cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
//为了方便可以把前面几步综合为一条命令:
mkdir build && cd build && cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

4、sudo make
5、sudo make install

在第3条命令时候报错如下:

CMake Error at 3rdparty/ippicv/downloader.cmake:73 (file):
file DOWNLOAD HASH mismatch

for file: [/home/lammy/a-lammy-softwares/opencv-3.1.0/3rdparty/ippicv/downloads/
linux-808b791a6eac9ed78d32a7666804320e/ippicv_linux_20151201.tgz]
  expected hash: [808b791a6eac9ed78d32a7666804320e]
    actual hash: [d41d8cd98f00b204e9800998ecf8427e]
         status: [7;"Couldn't connect to server"]

Call Stack (most recent call first):
3rdparty/ippicv/downloader.cmake:110 (_icv_downloader)
cmake/OpenCVFindIPP.cmake:237 (include)
cmake/OpenCVFindLibsPerf.cmake:12 (include)

主要原因是在下载ippicv压缩包时候网络原因未下载下来,大家可以连接vpn下载或者csdn中ippicv_linux_20151201.tgz:,下载完成了后,放在下面目录 ,继续执行第3、4、5命令即可。:

/opencv-3.1.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e

caffe安装

caffe下载:

git clone https://github.com/BVLC/caffe.git

编译caffe
进入caffe的根目录,拷贝makefile并编辑配置。

1、cp Makefile.config.example Makefile.config 
2、 gedit Makefile.config
// 综合为一个命令
cp Makefile.config.example Makefile.config && gedit Makefile.config

配置Makefile.config打开表示去掉前面的 ‘#’,注释表示 加上前面的’#‘,cpu 或者gpu只能用一个)

cpu环境:

  • 注释USE_CUDNN := 1
    打开 CPU_ONLY := 1

gpu:

  • 打开USE_CUDNN := 1
    注释 CPU_ONLY := 1
    打开并配置CUDA_DIR := /usr/local/cuda

opencv
打开 OPENCV_VERSION := 3

python接口:需要配置python的lib库和include地址,并打开WITH_PYTHON_LAYER

#非annaconda
PYTHON_INCLUDE := /usr/include/python3.5m \
            /usr/lib/python3.5/dist-packages/numpy/core/include
PYTHON_LIB := /usr/lib

ANACONDA_HOME := $(HOME)/anaconda
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
    # $(ANACONDA_HOME)/include/python2.7 \
    # $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include

WITH_PYTHON_LAYER := 1

注意:anconda home的配置:
1、利用conda create -n caffe-py2.7 python=2.7 创建了环境,则必须设置为 创建的环境中python的根目录:ANACONDA_HOME := $(HOME)/lammy/a-lammy-softwares/anaconda3/envs/caffe-py2.7.
2、利用conda的根目录环境:ANACONDA_HOME := $(HOME)/lammy/a-lammy-softwares/anaconda3

matlab接口:配置matlab的安装位置

MATLAB_DIR := /usr/local

添加 hdf5库

# Whatever else you find you need goes here.
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/i386-linux-gnu/hdf5/serial

修改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

修改 /usr/local/cuda/include/host_config.h 文件 :

    #error-- unsupported GNU version! gcc versions later than 4.9 are not supported!

改为

    //#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!

编译

make all -j8
make pycaffe

配置caffe python路径,方便import caffe

export PYTHONPATH=/home/lammy/a-lammy-softwares/caffe/python

错误一:

/usr/include/boost/python/detail/wrap_python.hpp:50:23: fatal error: pyconfig.h: No such 
file or directory

solution:这个错误一般是python的环境配置错误,我用的anaconda,因此conda的home环境配置很重要,
我修改为:
ANACONDA_HOME := /home/lammy/a-lammy-softwares/anaconda3/envs/caffe-py2.7
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
    $(ANACONDA_HOME)/include/python2.7 \
    $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include
PYTHON_LIB := $(ANACONDA_HOME)/lib
注意:原来是 $(HOME),后来修改为/home/...等绝对路径

错误二:

//home/idc/anaconda3/lib/libpng16.so.16: undefined reference to `inflateValidate@ZLIB_1.2.9'
这个错误也是安装anaconda导致的一些库找不到
solution:在makefile.config中添加:
LINKFLAGS := -Wl,-rpath,$(ANACONDA_HOME)/lib

错误三:

/usr/bin/ld: cannot find -lcblas /usr/bin/ld: cannot find -latlas collect2:

cd /usr/lib
发现只有libblas.so.3 而没有libcblas.so 和 libatlas.so 则为其创建连接:
sudo ln -s libblas.so.3 libcblas.so
sudo ln -s libblas.so.3 libatlas.so

错误四:

python/caffe/_caffe.cpp:10:31: fatal error: numpy/arrayobject.h: No such file or directory

solution:sudo apt-get install python-numpy

错误五:ImportError: No module named numpy

编译的2.7,因此要激活:
source activate caffe-py2.7
python
import caffe
报错:
ImportError: No module named numpy

输入: sudo apt-get install python-numpy
安装成功仍然在,才发现,anaconda的环境无法使用安装在系统中的库
pip install python-numpy解决问题

真的不建议使用anaconda配置caffe

错误六: ImportError: No module named skimage.io

    ImportError: No module named skimage.io
    同错误5解决:
    pip install -U scikit-image

错误7:

ImportError: No module named google.protobuf.internal
solution:pip install protobuf
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值