海思35xx系列的nnie硬件引擎只支持caffe1.x模型。所以任何使用其它框架训练出来的算法模型想要在nnie上进行推理必须先要将其转换成caffemodel。本文所讨论的平台是ubun18.0.4+cuda8.x+opencv3.4.3。
本系列为华为海思海思AI芯片(Hi3519A/3559A)方案学习系列之十,系列文章请见底部。
作者:ltshan139
caffe安装
1.下载代码
git clone git://github.com/BVLC/caffe.git
cd caffe/
cp Makefile.config.example Makefile.config
2.编辑Makefile.config
a、uncomment # USE_CUDNN := 1
b、uncomment # OPENCV_VERSION := 3
c、uncomment # WITH_PYTHON_LAYER := 1
d、删除CUDA_ARCH的两个值
:-gencode arch=compute_20,code=sm_20 \
-gencode arch=compute_20,code=sm_21 \
e、增加HDF5文件引用路径,如下图红体字所示
INCLUDE_DIRS :=$(PYTHON_INCLUDE)/usr/local/include /usr/include/hdf5/serial
LIBABRY_DIRS :=$(PYTHON_LIB) /usr/local/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
3、编译caffe框架代码
a、make all -j8
这时会遇到一个编译错误如下:
undefined reference cv::Mat::updateContinuityFlag() 这个是由于examle代码调用了一个当前版本opencv库并不存在的API
一个临时解决办法就是把使得该example代码不编译进去,即将examples/cpp_classification/classification.cpp ---> classification.cpp1
b、make pycaffe -j8
支持caffe的python版本
4、验证安装正常与否
1) make runtest
这里面偶尔错1、2个test小程序可以不理会。
2)import caffe
会遇到两个错误:
a) no module named caffe
解决办法: vi ~/.bashrc 添加 export PYTHONPATH=/xx/xx/caffe/python:$PYTHONPATH 然后source ~/.bashrc
b) No module named skimage.io
解决办法:pip install scikit-image
5.update caffe框架来支持yolo3 darknet模型
因为官方caffe框架不支持yolo3的upsample层,所以需要手动增加upsample层
a)下载code from https://pan.baidu.com/s/13GpoYoqKSCeFX0m0ves_fQ#list/path=/ 密码:bwrd
b)apply 下载的code到caffe框架里面,如下图所示
c)重新开始编译caffe
(1) make clean (2) make all -j8 (3) make pycaffe -j8
转换yolo3 darknet模型成caffemodel
1)download tool project in https://github.com/ChenYingpeng/caffe-yolov3
2)cd xx/caffe-yolov3-master/model_convert/ and input such command as :
python yolov3_darknet2caffe.py yolov3xxx.cfg yolov3xxx.weights xxx.prototxt xxx.caffemodel
注意两个问题:
第一: vi yolov3-darknet2caffe.py and 根据自己的安装路径修改caffe_root值。
第二:下载https://github.com/marvis/pyt...,并将cfg.py以及prototxt.py拷贝到xx/model_convert/
结论
至此,就可以产生caffe模型以及对应prototxt。 每个人的平台情况都或多或少差异化,所以你遇到的问题我可能没有碰到。此外,上面内容关键在于理解,不能生搬硬套,尤其是路径这块。
版权声明:本文为CSDN博主「ltshan139」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/avideointerfaces/article/details/89111955
海思AI芯片系列文章
- 海思AI芯片(Hi3519A/3559A)方案学习(九)wk格式的模型生成以及PC仿真
- 海思AI芯片(Hi3519A/3559A)方案学习(八)根文件系统运行遇到的两个问题
- 海思AI芯片(Hi3519A/3559A)方案学习(七)ext4根文件系统制作
- 海思AI芯片(Hi3519A/3559A)学习(六)No MMC device available和can't get kernel image两个问题的解决
- 海思AI芯片(Hi3519A/3559A)学习(五)SDK平台文档梳理 code
- 海思AI芯片(Hi3519A/3559A)学习(四)在3519A板子上运行sample code
- 海思Hi3519A/3559A(三)Ubuntu18.0.4上编译uboot和kernel
- 海思AI芯片(Hi3519A/3559A)方案学习(二)RuyiStudio安装
- 海思AI芯片(Hi3519A/3559A)方案学习(一)资料以及术语介绍
更多海思AI芯片方案学习笔记欢迎关注海思AI芯片方案学习。