博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
记录Ubuntu18.04-cuda10.1-opencv4配置caffe过程
阅读量:4153 次
发布时间:2019-05-25

本文共 3659 字,大约阅读时间需要 12 分钟。

目录

本来以为以后不会用到caffe,没想到以后还是得跟caffe打交道,花了大半天时间,安装完成。

1、安装前环境

cuda10.1

Ubuntu18.04
Python==3.7
opencv4

2、准备工作

2.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

2.2 安装python3-numpy

sudo apt install python3-numpy

2.3 安装HDF5

请参考这篇博客:

安装过程很顺利!
注意:这一步不安装可能导致后面出现以下错误:

.build_release/tools/caffe: error while loading shared libraries: libhdf5_hl.so.100: cannot open shared object file: No such file or directoryMakefile:526: recipe for target 'runtest' failed

解决方法是:从’anaconda2/lib’下面找到相应的文件复制到’/usr/lib/x86_64-linux-gnu’中即可。

3、安装caffe

3.1 下载caffe

git clone git://github.com/BVLC/caffe.git cd caffe/ cp Makefile.config.example Makefile.config

3.2 编辑Makefile.config

3.2.1 取消下面几行注释
取消注释#USE_CUDNN :=1取消注释#OPENCV—VERSION :=3取消注释#WITH_PYTHON_LAYER := 1
3.2.2 修改Python版本

将系统自带的Python2改为希望的Python版本,把原来Python2.7的接口注释掉,然后添加相应Python版本的接口。

# NOTE: this is required only if you will compile the python interface.# We need to be able to find Python.h and numpy/arrayobject.h.# PYTHON_INCLUDE := /usr/include/python2.7 \#		/usr/lib/python2.7/dist-packages/numpy/core/include# Anaconda Python distribution is quite popular. Include path:# Verify anaconda location, sometimes it's in root.# ANACONDA_HOME := $(HOME)/anaconda# PYTHON_INCLUDE := $(ANACONDA_HOME)/include \		# $(ANACONDA_HOME)/include/python2.7 \		# $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include# Uncomment to use Python 3 (default is Python 2)PYTHON_LIBRARIES := boost_python3 python3.7mPYTHON_INCLUDE := /usr/include/python3.7m \                 /usr/lib/python3.7/dist-packages/numpy/core/include
3.2.3 CUDA_ARCH修改

删除CUDA_ARCH的两个值

:-gencode arch=compute_20,code=sm_20 \     -gencode arch=compute_20,code=sm_21 \
3.2.4 将以下几行注释去掉,并修改值为1
# uncomment to disable IO dependencies and corresponding data layersUSE_OPENCV := 1USE_LEVELDB := 1USE_LMDB := 1# This code is taken from https://github.com/sh1r0/caffe-android-libUSE_HDF5 := 1
3.2.5 HDF5相关修改

这里主要是对下面两行进行修改,将hdf5相关路径添加上即可:

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include/ /usr/include/hdf5/serialLIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib  /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
3.2.6 opencv4相关的修改

首先修改config文件中的内容,添加OpenCV4的目录:

这里我分别添加了/usr/local/opencv/include/opencv4/和/usr/local/opencv/lib两个路径,根据自己的安装情况添加。

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include/ /usr/include/hdf5/serial /usr/local/opencv/include/opencv4/  LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial /usr/lib /usr/local/opencv/lib

INCLUDE_DIRS中添加的OpenCV目录是包含’opencv2’文件夹的目录

然后,再修改cpp文件中某些变量名称,因为OpenCV3和OpenCV4之间有些稍微不同,在caffe安装目录下输入:

sed -i 's/CV_LOAD_IMAGE_COLOR/cv::IMREAD_COLOR/g' src/caffe/layers/window_data_layer.cppsed -i 's/CV_LOAD_IMAGE_COLOR/cv::IMREAD_COLOR/g' src/caffe/util/io.cppsed -i 's/CV_LOAD_IMAGE_COLOR/cv::IMREAD_COLOR/g' src/caffe/test/test_io.cppsed -i 's/CV_LOAD_IMAGE_GRAYSCALE/cv::ImreadModes::IMREAD_GRAYSCALE/g' src/caffe/util/io.cppsed -i 's/CV_LOAD_IMAGE_GRAYSCALE/cv::ImreadModes::IMREAD_GRAYSCALE/g' src/caffe/test/test_io.cpp

3.3 修改Makefile文件

找到这一行,并修改为以下形式:

LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial

3.4 进行编译

sudo make all -j11 #我用了11个核

编译过程顺利结束!

4、测试

先后执行以下命令:

sudo make test -j10make runtest -j10

在这里插入图片描述通过测试!!!

5、编译pycaffe

执行:

sudo make pycaffe -j10

在这里插入图片描述

进入IPython测试:

在这里插入图片描述

安装完成。

转载地址:http://narti.baihongyu.com/

你可能感兴趣的文章
进程创建时安全计算处理
查看>>
进程创建时cgroup处理
查看>>
进程创建时共享内存处理
查看>>
idle进程创建
查看>>
内核线程创建
查看>>
linux elf tool readelf
查看>>
linux tool objdump
查看>>
linux tool nm
查看>>
字节对齐
查看>>
把类成员函数封装成线程API所需要的函数
查看>>
HTTP Live Streaming直播(iOS直播)技术分析与实现
查看>>
Ribbon界面图标可以直接用PNG做透明图标
查看>>
向其他软件窗口、控件发送消息的方法
查看>>
word或者pdf文件全部保存为图片的方法
查看>>
VS2010下SQLite3生成lib库文件
查看>>
sqlite3的helloworld
查看>>
MFC下支持中文的SQLite3封装类使用
查看>>
简单高效的多线程日志类
查看>>
研华USB4711A采集卡高速中断模式采集总结
查看>>
从零起步CMFCToolBar用法详解
查看>>