如果对深度学习感兴趣可以加我微信,互相交流(本人是做嵌入式的,但对深度学习感兴趣):15737978512

2017年6月29日更:

关于ive:
海思已经移植好了caffe库,而且提供了将pc训练好的模型转换为可以导入ive中运行的模型方法,具体参考如下文档:
sdk中ive开发包路径:Hi3519 V100R001C01SPC040\01.software\pc\IVE_CLIB\HiIVE_PC_V2.1.0.5.rar\HiIVE_PC_V2.1.0.5\

2017年6月27日更:
关于移植出现问题有网友已解决,
原因:
openblas库移植的有问题,由于3519浮点运算不支持函数的参数直接传递到FPU的寄存器(s0、d0)中(hard模式),而移植的openblas库使用的是hard模式。
解决方法:
3519浮点运算支持softfp模式,对应openblas分支如下,编译即可:
https://github.com/xianyi/OpenBLAS/tree/arm_soft_fp_abi

1.移植环境

  • Ubuntu16.04 + arm-hisiv500-linux-
  • caffe下载地址:https://github.com/BVLC/caffe/releases

2.移植步骤:

  • 修改Makefile
1)LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
2)BLAS ?= open
3)COMMON_FLAGS += -mcpu=cortex-a17.cortex-a7 -mfloat-abi=softfp -mfpu=neon-vfpv4 -mno-unaligned-access -fno-aggressive-loop-optimizations
  • 修改Makefile.config
     1)CPU_ONLY := 12)OPENCV_VERSION := 3 #3)CUSTOM_CXX := arm-hisiv500-linux-g++4)BLAS := open5)INCLUDE_DIRS := $(PYTHON_INCLUDE) /opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/usr/local/include /opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/usr/include /usr/local/include96 LIBRARY_DIRS := $(PYTHON_LIB) /opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/usr/local/lib /opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/usr/lib6)#PYTHON_LIB := /usr/lib7)USE_PKG_CONFIG := 1
  • 编译:make all
  • 安装:make test

3.移植问题汇总

  • 问题一描述:
/opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/usr/local/lib/libboost_filesystem.so: warning: the use of OBSOLESCENT `utime' is discouraged, use `utimes'
/opt/hisi-linux/x86-arm/arm-hisiv500-linux/bin/../lib/gcc/arm-hisiv500-linux-uclibcgnueabi/4.9.4/../../../../arm-hisiv500-linux-uclibcgnueabi/bin/ld: warning: ../../lib/libopencv_video.so, needed by /opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/usr/local/lib/libopencv_shape.so, not found (try using -rpath or -rpath-link)
/opt/hisi-linux/x86-arm/arm-hisiv500-linux/bin/../lib/gcc/arm-hisiv500-linux-uclibcgnueabi/4.9.4/../../../../arm-hisiv500-linux-uclibcgnueabi/bin/ld: warning: ../../lib/libopencv_imgproc.so, needed by /opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/usr/local/lib/libopencv_shape.so, not found (try using -rpath or -rpath-link)
/opt/hisi-linux/x86-arm/arm-hisiv500-linux/bin/../lib/gcc/arm-hisiv500-linux-uclibcgnueabi/4.9.4/../../../../arm-hisiv500-linux-uclibcgnueabi/bin/ld: warning: ../../lib/libopencv_core.so, needed by /opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/usr/local/lib/libopencv_shape.so, not found (try using -rpath or -rpath-link)
/opt/hisi-linux/x86-arm/arm-hisiv500-linux/bin/../lib/gcc/arm-hisiv500-linux-uclibcgnueabi/4.9.4/../../../../arm-hisiv500-linux-uclibcgnueabi/bin/ld: warning: ../../lib/libopencv_objdetect.so, needed by /opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/usr/local/lib/libopencv_stitching.so, not found (try using -rpath or -rpath-link)
/opt/hisi-linux/x86-arm/arm-hisiv500-linux/bin/../lib/gcc/arm-hisiv500-linux-uclibcgnueabi/4.9.4/../../../../arm-hisiv500-linux-uclibcgnueabi/bin/ld: warning: ../../lib/libopencv_calib3d.so, needed by /opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/usr/local/lib/libopencv_stitching.so, not found (try using -rpath or -rpath-link)
/opt/hisi-linux/x86-arm/arm-hisiv500-linux/bin/../lib/gcc/arm-hisiv500-linux-uclibcgnueabi/4.9.4/../../../../arm-hisiv500-linux-uclibcgnueabi/bin/ld: warning: ../../lib/libopencv_features2d.so, needed by /opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/usr/local/lib/libopencv_stitching.so, not found (try using -rpath or -rpath-link)
/opt/hisi-linux/x86-arm/arm-hisiv500-linux/bin/../lib/gcc/arm-hisiv500-linux-uclibcgnueabi/4.9.4/../../../../arm-hisiv500-linux-uclibcgnueabi/bin/ld: warning: ../../lib/libopencv_flann.so, needed by /opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/usr/local/lib/libopencv_stitching.so, not found (try using -rpath or -rpath-link)
/opt/hisi-linux/x86-arm/arm-hisiv500-linux/bin/../lib/gcc/arm-hisiv500-linux-uclibcgnueabi/4.9.4/../../../../arm-hisiv500-linux-uclibcgnueabi/bin/ld: warning: ../../lib/libopencv_ml.so, needed by /opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/usr/local/lib/libopencv_stitching.so, not found (try using -rpath or -rpath-link)
/opt/hisi-linux/x86-arm/arm-hisiv500-linux/bin/../lib/gcc/arm-hisiv500-linux-uclibcgnueabi/4.9.4/../../../../arm-hisiv500-linux-uclibcgnueabi/bin/ld: warning: ../../lib/libopencv_highgui.so, needed by /opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/usr/local/lib/libopencv_stitching.so, not found (try using -rpath or -rpath-link)
/opt/hisi-linux/x86-arm/arm-hisiv500-linux/bin/../lib/gcc/arm-hisiv500-linux-uclibcgnueabi/4.9.4/../../../../arm-hisiv500-linux-uclibcgnueabi/bin/ld: warning: ../../lib/libopencv_videoio.so, needed by /opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/usr/local/lib/libopencv_stitching.so, not found (try using -rpath or -rpath-link)
/opt/hisi-linux/x86-arm/arm-hisiv500-linux/bin/../lib/gcc/arm-hisiv500-linux-uclibcgnueabi/4.9.4/../../../../arm-hisiv500-linux-uclibcgnueabi/bin/ld: warning: ../../lib/libopencv_imgcodecs.so, needed by /opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/usr/local/lib/libopencv_stitching.so, not found (try using -rpath or -rpath-link)
/opt/hisi-linux/x86-arm/arm-hisiv500-linux/bin/../lib/gcc/arm-hisiv500-linux-uclibcgnueabi/4.9.4/../../../../arm-hisiv500-linux-uclibcgnueabi/bin/ld: warning: ../../lib/libopencv_photo.so, needed by /opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/usr/local/lib/libopencv_videostab.so, not found (try using -rpath or -rpath-link)
CXX tools/convert_imageset.cpp
CXX/LD -o .build_release/tools/convert_imageset.bin
  • 问题原因:链接的问题
shunzhi@ubuntu:/opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/usr/local/lib$ arm-hisiv500-linux-readelf -d libopencv_shape.so
Dynamic section at offset 0x2f7c0 contains 30 entries:Tag        Type                         Name/Value0x00000001 (NEEDED)                     Shared library: [../../lib/libopencv_video.so]0x00000001 (NEEDED)                     Shared library: [../../lib/libopencv_imgproc.so]0x00000001 (NEEDED)                     Shared library: [../../lib/libopencv_core.so]0x00000001 (NEEDED)                     Shared library: [libstdc++.so.6]0x00000001 (NEEDED)                     Shared library: [libm.so.0]0x00000001 (NEEDED)                     Shared library: [libgcc_s.so.1]0x00000001 (NEEDED)                     Shared library: [libc.so.0]0x0000000c (INIT)                       0x37a80x0000000d (FINI)                       0x2b3880x00000019 (INIT_ARRAY)                 0x3f0000x0000001b (INIT_ARRAYSZ)               32 (bytes)0x0000001a (FINI_ARRAY)                 0x3f0200x0000001c (FINI_ARRAYSZ)               4 (bytes)0x00000004 (HASH)                       0xd40x00000005 (STRTAB)                     0x10bc0x00000006 (SYMTAB)                     0x5ac0x0000000a (STRSZ)                      5274 (bytes)0x0000000b (SYMENT)                     16 (bytes)0x00000003 (PLTGOT)                     0x3f8d00x00000002 (PLTRELSZ)                   872 (bytes)0x00000014 (PLTREL)                     REL0x00000017 (JMPREL)                     0x34400x00000011 (REL)                        0x26d80x00000012 (RELSZ)                      3432 (bytes)0x00000013 (RELENT)                     8 (bytes)0x6ffffffe (VERNEED)                    0x26b80x6fffffff (VERNEEDNUM)                 10x6ffffff0 (VERSYM)                     0x25560x6ffffffa (RELCOUNT)                   2340x00000000 (NULL)                       0x0
  • 解决方案:

    • 在当前opencv库的位置新建一个相对路径的lib库
      mkdir ../../lib
      cp libopencv* ../../lib
  • 问题二描述:

CXX/LD -o .build_release/test/test_all.testbin src/caffe/test/test_caffe_main.cpp
/opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/usr/local/lib/libboost_filesystem.so: warning: the use of OBSOLESCENT `utime' is discouraged, use `utimes'
/opt/hisi-linux/x86-arm/arm-hisiv500-linux/bin/../lib/gcc/arm-hisiv500-linux-uclibcgnueabi/4.9.4/../../../../arm-hisiv500-linux-uclibcgnueabi/bin/ld: /opt/hisi-linux/x86-arm/arm-hisiv500-linux/bin/../target/lib/libpthread.so.0: undefined reference to symbol 'dlclose'
/opt/hisi-linux/x86-arm/arm-hisiv500-linux/bin/../target/lib/libdl.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Makefile:606: recipe for target '.build_release/test/test_all.testbin' failed
make: *** [.build_release/test/test_all.testbin] Error 1
  • 原因:缺少ptread,dl,rt库

  • 解决方案:Makefile中添加这三个库。

183 LIBRARIES += glog gflags protobuf boost_system boost_filesystem m  hdf5_hl hdf5 pthread dl rt
  • 问题三描述:训练mnist模型时出现的错误。(未解决)
I0406 10:54:27.313168   722 net.cpp:242] This network produces output accuracy
I0406 10:54:27.313230   722 net.cpp:242] This network produces output loss
I0406 10:54:27.313371   722 net.cpp:255] Network initialization done.
I0406 10:54:27.314100   722 solver.cpp:56] Solver scaffolding done.
I0406 10:54:27.314471   722 caffe.cpp:248] Starting Optimization
I0406 10:54:27.314553   722 solver.cpp:273] Solving LeNet
I0406 10:54:27.314610   722 solver.cpp:274] Learning Rate Policy: inv
I0406 10:54:27.321142   722 solver.cpp:331] Iteration 0, Testing net (#0)
*** Aborted at 1491504867 (unix time) try "date -d @1491504867" if you are using GNU date ***
PC: @ 0xb6ea7c54 (unknown)
Segmentation fault

目前caffe和其依赖库已经移植完成,但是在训练数据时出现了错误(运行训练好的模型执行时也会出现这种问题),不知道是否由于依赖库的移植有问题,如果有遇到这种问题欢迎交流(shunzhi163@163.com)。

  • 注意:

    • 也可以在pc训练,在板子上跑模型;但是跑模型时同样会有上述错误。

移植caffe到hi3519相关推荐

  1. Caffe移植(上)--ubuntu16.04+anaconda2+dlib+opencv2+caffe(CPU)+openblas+qt4.8+pycharm

    写在前面: (1):ARM开发板CPU:Exynos 4412,8GDRAM (2):官方交叉编译工具链:arm2009q3 (3):目标:移植Caffe的无CPU版本 (4):arm2009q3编译 ...

  2. 【caffe-Windows】caffe+VS2013+Windows无GPU快速配置教程

    前言 首先来一波地址: happynear大神的第三方caffe:http://blog.csdn.net/happynear/article/details/45372231 Neil Z大神的第三 ...

  3. win10+cpu+caffe搭建

    搭建了几天的caffe,GPU的CPU的都装过了,中途出现了各种问题,觉得值得拿出来记录一下~也方便以后查看~以下是我朋友博客中搭建的过程~写的很好,拿来借用一下~ 前言 首先来一波地址: happy ...

  4. Windows系统下VS2013+caffe的安装

    笔者作为一名深度学习小白,今日开始打算入门caffe框架.而caffe的安装过程没想到出现各种问题,虽参考众多博客,均未完美解决,故集众家所长,贴上一文,希望帮助和我一样的新手.笔者环境为win10+ ...

  5. 研究 | 健康大数据平台的“区块链治理”

    个人健康数据,是一个私密性领域,此类数据的挖掘和应用,以前传统的计算机平台技术方式已经不足以支撑.文章着重探讨了应用区块链技术进行治理的一些方法,但是并没有过多的从区块链"去中心化" ...

  6. yolov2移植到android,darknet(yolov2)移植到caffe框架

    yolov2到caffe的移植主要分两个步骤: 一.cfg,weights转换为prototxt,caffemodel 1.下载源码: git clone https://github.com/mar ...

  7. 【caffe-windows】Linux至Windows平台的caffe移植

    1.前言 主要参考两篇博客以及很多论坛解决细节问题: http://www.cnblogs.com/trantor/p/4570097.html https://initialneil.wordpre ...

  8. 深度学习(五十八)caffe移植至mxnet

    一.模型转换 #**mxnet编译** 1.下载mxnet:git clone https://github.com/dmlc/mxnet.git --recursive 2. 编译mxnet ``` ...

  9. HI3516D之Caffe移植

    编译Glog cd glog-0.3.5 ./configure --host=arm-linux --prefix=/usr/local/HI3516D/v400/glog-0.3.5 CFLAGS ...

最新文章

  1. PHP Socket配置以及实例
  2. Silverlight+WCF 新手实例 象棋 棋盘(二)
  3. 块级元素内联并列显示
  4. 数字图像处理:第二十章 视频编码与压缩
  5. 跨国婚姻登记指南是怎样的一个流程呢??
  6. boost::spirit模块使用 phoenix 进行实际表达式评估的语法和语义操作的测试程序
  7. C语言两个字符串查找最长的公共子串的算法(附完整源码)
  8. nutch开发(六)
  9. 一站式学习Redis 从入门到高可用分布式实践(慕课)第六章 Redis开发运维常见问题...
  10. 重写AgileEAS.NET SOA 中间件平台账号密码的加密算法
  11. 决策树算法绘图——graphviz安装
  12. hadooppythonsql_半小时搞定Hadoop+Mysql+Hive+Python
  13. 关于springMVC传参问题
  14. 吹毛求疵C#(1)明确赋值检查缺陷
  15. 安卓开发 xml添加滑动条
  16. stylus 设置全局样式_vue 公共样式处理_全局styl文件
  17. 华为路由器交换机配置命令
  18. python getch_macOS 下的 getch()
  19. CTF-AWD入门手册
  20. 副业兼职: 在家就可以做的兼职项目推荐

热门文章

  1. python代码规范_合格搬砖工
  2. 验证身份证号的工具类
  3. python的一些语句的意思
  4. Uniswap计算过程推演
  5. 罗斯魔影消消乐h5游戏源码
  6. 托勒密定理 圆的内接四边形
  7. DNS部署之动态域名解析DDNS
  8. AMS1117稳压模块
  9. AIO系列文档(2)----TIO使用
  10. Python机器学习实战:如何用Pandas处理缺失值