海思Hi3519AV100深度学习方案(一)darknet转caffmodel之caffe安装(基于Ubuntu16.04+python3.5+opencv3.4.0+cuda10.0)

系列文章目录

海思Hi3519AV100深度学习方案(二)darknet转caffmodel之模型转换(yolov3+caffe+python3.5)


文章目录

  • 系列文章目录
  • 前言
  • 一、系统已有环境检查
    • 1.1查看本机显卡驱动:430.50
    • 1.2查看Opencv版本号 :3.4.0
    • 1.3查看cuda版本:V10.0.130
    • 1.4查看当前python版本号
  • 二、 安装caffe
    • 2.1安装依赖
    • 2.2 caffe 下载及protobuf3安装
    • 2.3 caffe 配置文件修改
    • 2.4 编译caffe
    • 2.5 增加python路径
    • 2.6 测试caffe安装成功
  • 总结


# 文章目录

前言

参考博客
https://blog.csdn.net/tingtie1438/article/details/82085199
Ubuntu16.04系统的python3.5+caffe+opencv3.4.0+cudnn7.0+cuda9.0 安装过程(全过程详细整理)
https://blog.csdn.net/qq_42998120/article/details/105567998
ubuntu16.04系统下NVIDIA驱动、cuda和cuDNN的安装及版本对应关系
https://blog.csdn.net/avideointerfaces/article/details/89111955
海思AI芯片(Hi3519A/3559A)方案学习(十)将yolov3的darknet模型转换为caffemodel
本文的主要目的是实现darknet模型转caffmodal,用于海思平台的深度学习算法移植,海思平台只支持caffe框架,所以首先要安装caffe,caffe安装确实不容易,网上到处都是踩坑文,本人也基本上全踩了一遍才安装成功。最重要的事情就是在安装过程中一定要注意python、opencv cuda及cudnn版本的匹配,
注意:如果cuda>9.0 建议不要用python2.7了,安装caffe runtest那里过不了,即使忽略过去,后面转换模型也不成功。因此本文最后用python3.5安装成功,过程也是比较坎坷。


一、系统已有环境检查

本机的显卡是RTX2080ti,安装caffe前本机显卡驱动,opencv cuda及cudnn已安装好。参考博文https://blog.csdn.net/qq_42998120/article/details/105567998。

1.1查看本机显卡驱动:430.50

指令如下:

nvidia-smi

海思Hi3519AV100深度学习方案(一)darknet转caffmodel之caffe安装(基于Ubuntu16.04+python3.5+opencv3.4.0+cuda10.0)_第1张图片显卡驱动信息

1.2查看Opencv版本号 :3.4.0

$ pkg-config opencv --libs    # 查看opencv已安装的库
$ pkg-config opencv --modversion    # 查看opencv已安装的版本

海思Hi3519AV100深度学习方案(一)darknet转caffmodel之caffe安装(基于Ubuntu16.04+python3.5+opencv3.4.0+cuda10.0)_第2张图片

1.3查看cuda版本:V10.0.130

nvcc -V

海思Hi3519AV100深度学习方案(一)darknet转caffmodel之caffe安装(基于Ubuntu16.04+python3.5+opencv3.4.0+cuda10.0)_第3张图片

1.4查看当前python版本号

python

海思Hi3519AV100深度学习方案(一)darknet转caffmodel之caffe安装(基于Ubuntu16.04+python3.5+opencv3.4.0+cuda10.0)_第4张图片如何 把系统当前默认的python版本切换到python3.5?

sudo rm python               #删除原来的python
sudo ln -s python3 python    #建立python3.5的软连接 

最后输入python,看看终端结果是否是python3.5

二、 安装caffe

2.1安装依赖

安装后续步骤或环境必需的依赖包 在终端依次输入以下命令:

sudo apt-get install python3-pip
 
sudo apt-get install python-numpy
 
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。

参考原文链接:https://blog.csdn.net/tingtie1438/article/details/82085199
安装以上指令要注意
1 .Python3.5配置caffe,有protobuf>=3的要求,这个之前安装不成的时候没有注意到,可能和这个版本有关。
安装过程在caffe下载完之后
2. 通过指令sudo apt-get install --no-install-recommends libboost-all-dev 安装boost_python
python3.5 匹配的版本是1.58.0 ,本机直接安装的是1.54的版本,和python3.5不匹配,后面转换模型的时候提示C++不能支持,回头又定1.58版本安装
可通过指令查询系统的boost_python

ldconfig -p | grep boost_python

海思Hi3519AV100深度学习方案(一)darknet转caffmodel之caffe安装(基于Ubuntu16.04+python3.5+opencv3.4.0+cuda10.0)_第5张图片
本机通过定版本安装1.58.0

aptitude search boost |grep 1.58 #查询1.58的boost版本
sudo apt-get install  libboost-boost1.58-dev #指定boost版本安装

海思Hi3519AV100深度学习方案(一)darknet转caffmodel之caffe安装(基于Ubuntu16.04+python3.5+opencv3.4.0+cuda10.0)_第6张图片

2.2 caffe 下载及protobuf3安装

1 在你要安装的路径下 clone :
git clone https://github.com/BVLC/caffe.git

海思Hi3519AV100深度学习方案(一)darknet转caffmodel之caffe安装(基于Ubuntu16.04+python3.5+opencv3.4.0+cuda10.0)_第7张图片2 进入 caffe 目录 ,按照以下指令安装protobuf3。
这个过程安装比较顺利,基本没有问题,按照下面指令安装就行,注意目录:首先要进入caffe目录,后面创建的目录都仔细检查以下。

mkdir protobuf && cd protobuf
 
mkdir cpp && cd cpp
 
wget https://github.com/google/protobuf/releases/download/v3.0.0/protobuf-cpp-3.0.0.tar.gz
 
tar xvf protobuf-cpp-3.0.0.tar.gz && cd protobuf-3.0.0
 
./configure && make
 
make check
 
sudo make install
 
sudo ldconfig
 
cd ../..
 
mkdir python && cd python
 
wget https://github.com/google/protobuf/releases/download/v3.0.0/protobuf-python-3.0.0.tar.gz
 
tar xvf protobuf-python-3.0.0.tar.gz && cd protobuf-3.0.0/python/
 
python setup.py build
 
python setup.py test
 
python setup.py install

参考链接:https://blog.csdn.net/tingtie1438/article/details/82085199


3 之后查看当前protobuf版本,是否升级到3.0.0,普通账户和root账户最好版本相同
protoc --version 
sudo protoc --version

2.3 caffe 配置文件修改

1 进入caffe目录下
将 Makefile.config.example 文件复制一份并更名为 Makefile.config ,也可以在 caffe 目录下直接调用以下命令完成复制操作 :

sudo cp Makefile.config.example Makefile.config

2 修改Makefile.config

sudo gedit Makefile.config

修改如下:

a)应用 cudnn

#USE_CUDNN := 1
修改成: 
USE_CUDNN := 1

b)应用 opencv 版本

#OPENCV_VERSION := 3 
修改为: 
OPENCV_VERSION := 3

c)使用 python 接口

#WITH_PYTHON_LAYER := 1 
修改为 
WITH_PYTHON_LAYER := 1

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

e)重要的是修改python的版本,文件中默认配置的版本是2.7
把2.7版本的注释去掉,修改python3.5的版本配置。
海思Hi3519AV100深度学习方案(一)darknet转caffmodel之caffe安装(基于Ubuntu16.04+python3.5+opencv3.4.0+cuda10.0)_第8张图片

PYTHON_LIBRARIES := boost_python python3.5m
PYTHON_INCLUDE := /usr/include/python3.5m \
                /usr/lib/python3.5/dist-packages/numpy/core/include\
                 /usr/local/lib/python3.5/dist-packages/numpy/core/include

这里的库名boost_python就是之前依赖安装的1.58的版本,注意要做以下软链接的修改

sudo ln -s libboost_python-py35.so libboost_python.so
sudo ln -s libboost_python-py35.a  libboost_python.a

f) 跟cuda版本有关的
海思Hi3519AV100深度学习方案(一)darknet转caffmodel之caffe安装(基于Ubuntu16.04+python3.5+opencv3.4.0+cuda10.0)_第9张图片
注意 CUDA >= 9.0 要把前两行注释掉

# For CUDA >= 9.0, comment the *_20 and *_21 lines for compatibility.
CUDA_ARCH := #-gencode arch=compute_20,code=sm_20 \
		#-gencode arch=compute_20,code=sm_21 \

3 修改 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
#LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
LIBRARIES +=  glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial hdf5_hl hdf5  opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs leveldb snappy lmdb

2.4 编译caffe

修改好以上两个文件就可以开始编译了,在 caffe 目录下执行

sudo make clean
sudo make all -j4
sudo make runtest -j4 
Sudo make pycaffe -j4

如果没有问题,最后三个指令运行成功截图如下:
海思Hi3519AV100深度学习方案(一)darknet转caffmodel之caffe安装(基于Ubuntu16.04+python3.5+opencv3.4.0+cuda10.0)_第10张图片

海思Hi3519AV100深度学习方案(一)darknet转caffmodel之caffe安装(基于Ubuntu16.04+python3.5+opencv3.4.0+cuda10.0)_第11张图片
海思Hi3519AV100深度学习方案(一)darknet转caffmodel之caffe安装(基于Ubuntu16.04+python3.5+opencv3.4.0+cuda10.0)_第12张图片

2.5 增加python路径

gedit  ~/.bashrc
export PYTHONPATH=/home/mina522/caffe/python:$PYTHONPATH

刷新路径

source ~/.bashrc

2.6 测试caffe安装成功

python
import caffe

海思Hi3519AV100深度学习方案(一)darknet转caffmodel之caffe安装(基于Ubuntu16.04+python3.5+opencv3.4.0+cuda10.0)_第13张图片
如果没有提示错误,至此caffe已安装配置成功。上面的配置是在踩坑后完善的,如果按照上述过程还有坑,就继续百度吧。

补充:import caffe 的过程中遇到ImportError:No module named skimage.io
海思Hi3519AV100深度学习方案(一)darknet转caffmodel之caffe安装(基于Ubuntu16.04+python3.5+opencv3.4.0+cuda10.0)_第14张图片
在python3环境下以下指令解决:

sudo pip3 install scikit-image

总结

安装过程比较坎坷,刚开始用系统自带的python2.7环境进行配置安装,到了runtest那里怎么都不过,提示错误好像跟cuda有关,怀疑cuda版本太高,但又不能降级cuda版本,因为显卡驱动有最低支持的版本。因此就想到升级python配置安装,直接下载了一个Python3.10,装到中间发现好像caffe支持不了高版本的Python,好像一篇文章看到最高支持到python3.6,汗汗汗,又把系统的python版本切换到自带的3.5,参考之前各位大神文章,通过上述过程安装成功。
最后总结在安装任何软件的时候,一定要首先确认下自己系统的环境,包括不限于操作系统版本、依赖软件的版本,不过没关系,踩过的坑都是经验,通过反复不断的安装,对自己系统越来越清晰,各种指令用的都可以直接打出来了,再也不用到处复制粘贴了!
好久没有写文了,发现csdn的模板超级好用,文章写完看起来结构还算清晰,如果有错误之处,欢迎留言指出。

你可能感兴趣的:(海思Hi3519,caffe,深度学习,人工智能,嵌入式)