ubuntu16.04下的caffe-ssd的安装

8 篇文章 0 订阅
4 篇文章 0 订阅

由于工作需要进行ssd网络的训练,在台式机上安装caffe-ssd。因为之前装过cuda、cudnn等显卡驱动等配置,因此直接进入caffe-ssd的安装。
1)下载caffe-ssd
下载地址:https://github.com/weiliu89/caffe/tree/ssd
并解压
2)根据自己需求修改Makefile.config,Makefile两个文件
2.1)Makefile.config修改
切换到caffe文件夹下,运行:

#复制并重命名
cp Makefile.config.example Makefile.config

1.若使用cudnn,取消“# USE_CUDNN := 1” 前的注释即:USE_CUDNN := 1
2.若使用opencv3.x,取消“# OPENCV_VERSION := 3” 前的注释,即:OPENCV_VERSION := 3
3.取消“# WITH_PYTHON_LAYER := 1” 前的注释。即 WITH_PYTHON_LAYER := 1
4.加入hdf5的目录:

    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

2.2)Makefile修改:
有三处要修改:

  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
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)   

修改为:

 NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
LIBRARIES += boost_thread stdc++#后加boost_regex 

修改为:

 LIBRARIES += boost_thread stdc++ boost_regex

3)进行编译

make all j8
make py
make test -j8
make runtest -j8

4)编译过程中的各种报错:
4.1)镜像源问题
make all j8后的报错:

PROTOC src/caffe/proto/caffe.proto make: protoc: Command not found

需要安装protoc-c

    sudo apt-get update

报错:
在这里插入图片描述

Hash Sum mismatch

上网搜索发现是下载的镜像源的问题
准备换源,一开始是通过替换sources.list的文件内容

sudo gedit /etc/apt/sources.list

但是替换了Alibaba等几个源后还是没有用,于是上网查到,在设置里面改:
system setting->Software&Updates里改为http://ftp.sjtu.edu.cn/ubuntu xenial-updates/main ,如下图所示在这里插入图片描述

换源后,开始安装附加依赖项:

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev

4.2)boost未安装问题
然后再执行make all j8,报错:
在这里插入图片描述

fatal error: boost/thread.hpp: No such file or directory.

上网搜索需要安装boost:

选择安装 boost 1.68.0:
https://dl.bintray.com/boostorg/release/1.68.0/source/ 下载,
解压:

tar zvxf boost_1_68_0.tar.gz
cd boost_1_68_0
./bootstrap.sh --with-libraries=allwith-python-root=/usr/bin/python
sudo ./b2 install#这一步骤消耗时间较长。
Sudo gedit /etc/ld.so.conf #在打开的文件中添加 /usr/local/lib
sudo ldconfig

4.3)cuda版本问题

继续编译caffe-ssd:
make all -j8 后报错:
在这里插入图片描述

fatal error: cublas_v2.h: No such file or directory compilation terminated.

上述问题即为:ubuntu16.04 cuda8.0 caffe 编译 error: cublas_v2.h 没有那个文件或目录:
CUDA8.0 中的include、lib路径是安装目录下/usr/local/cuda-8.0下面的include和lib
将其分别添加到caffe根目录下Makefile.config中的"INCLUDE_DIRS"、“LIBRARY_DIRS”后面就可以了。
将原

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include 
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib 

改为对应的cuda版本,我装的是cuda8.0,修改如下:

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/local/cuda-8.0/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/local/cuda-8.0/lib64

Makefile.config中第30行

CUDA_DIR := /usr/local/cuda

改为

CUDA_DIR := /usr/local/cuda-8.0

4.4)系统时钟问题
完成上述操作后再次编译:
在这里插入图片描述

make warning: Clock skew detected. Your build may be incomplete.

是时钟的问题,将系统的时间设置未自动获取后,

make all -j8
make test -j8
make runtest -j8#结果见下图
make pycaffe

在这里插入图片描述
4.5)python环境中导入caffe问题
编译 pycaffe 成功后,验证一下是否可以在 python 中导入 caffe 包,进入
python 环境,在终端中运行 caffe,然后导入 caffe,出现以下错误:
在这里插入图片描述
直接报:ImportError: No Module named skimage.io
这是因为没有环境变量,解决方法:

#需要输入caffe的根目录
sudo echo export PYTHONPATH="~/media/linux_data/chengxu/caffe-ssd/python" >> ~/.bashrc
source ~/.bashrc
export PYTHONPATH=/media/linux_data/chengxu/caffe-ssd/python:$PYTHONPATH

重新在 python 下 import caffe,出现以下错误:

在这里插入图片描述

import skimage.io
ImportError: No Module named skimage.io

一般是因为没有安装 skimage 或者部分依赖库没有安装,解决方法:
首先安装依赖包:
sudo apt-get install python-matplotlib python-numpy python-pil python-scipy
sudo apt-get install build-essential cython
安装 skimage 包:
方法一:sudo apt-get install python-skimage
方法二:pip install scikit-image
重新在 python 下 import caffe,报错:
在这里插入图片描述

numpy.dtype size changed, may indicate binary incompatibility

numpy版本有问题,就是各种库之间的版本不匹配,只需要把numpy的版本降到1.14.5就可以了.将numpy删除后重新安装

sudo pip uninstall numpy
sudo pip install numpy==1.14.5

再在python下import caffe就正常了。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值