说在前面

  • PC环境:ubuntu16.04
  • 目标平台:armv8-A
  • 编译方式:交叉编译
  • 参考:为Tensorflow、Tensorflow lite配置Arm NN SDK编译环境、arm developer
  • 其他说明:主要按照第一篇博文中的过程来,记录一些小问题
  • 吐槽:目前单个树莓派真的不适合做神经网络之类的

tensorflow版本补充

  • 由于下述过程需要contrib文件夹,目前最新版本(>2.1.0)的tf中没有该文件夹
  • 2.0.0版本可行

各种库的下载

  • 嫌github下载慢可到码云下载

编译ComputeLibrary补充

  • 这里我用到的命令为

    sudo scons arch=arm64-v8a extra_cxx_flags="-fPIC" benchmark_tests=0 \validation_tests=0 Werror=1 debug=0 asserts=0 \neon=1 opencl=1 embed_kernels=1
    

    参考Tutorial: Cartoonifying Images on Raspberry Pi with the Compute Library、Tutorial: Cartoonifying Images on Raspberry Pi with the Compute Library

  • 且不支持python3.x,切换python版本见采用update-alternatives 切换python版本

  • 需要与ARMNN保持版本一致

编译google protobuf补充

  • 安装缺失工具

    apt-get install libtool autoconf autogen
    

    不然会出现错误

    ./autogen.sh: 10: ./autogen.sh: autoreconf: not found
    

    以及

    configure.ac:163: error: possibly undefined macro: AC_PROG_LIBTOOL
    
  • 在交叉编译cmake后别忘了make install

编译Google flatbuffers补充

  • 若启用ArmnnConverterArmnnQuantizer,则需编译native(即在主机上使用本地编译工具编译)和arm两个版本,因为要用到flatc

    mkdir build_native
    cd build_native
    cmake .. -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release
    make
    

编译tensorflow protobuf补充

  • 应该使用x86_64版本的protoc

    ../armnn/script/generate_tensorflow_protobuf.sh \ ../tensorflow-2.0.0_protobuf ../prtobuf_x86_64_root
    

编译ARMNN补充

  • 启用NEONCL加速请添加

    -DARMCOMPUTENEON=1
    -DARMCOMPUTECL=1
    

    启用的话注意ARMNNComputeLibrary版本要一致,不然可能出现类似的错误:

    error: no matching function for call to ‘arm_compute::PoolingLayerInfo::PoolingLayerInfo(const arm_compute::PoolingType&, const arm_compute::DataLayout&)’return arm_compute::PoolingLayerInfo(poolingType, dataLayout);
    
  • 建议启用ArmnnConverterArmnnQuantizer
    -DARMNNREF=1
    -DBUILD_ARMNN_SERIALIZER=1 \
    -DBUILD_ARMNN_QUANTIZER=1 \
    -DFLATC=/home/liang/armnn/flatbuffers/flatc
    
  • 我用的为
    CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ \
    cmake .. \
    -DARMCOMPUTE_ROOT=/home/liang/armnn/ComputeLibrary \
    -DARMCOMPUTE_BUILD_DIR=/home/liang/armnn/ComputeLibrary/build/ \
    -DBOOST_ROOT=/home/liang/armnn/boost_root/ \
    -DTF_GENERATED_SOURCES=/home/liang/armnn/tensorflow-2.0.0_protobuf/ \
    -DBUILD_TF_PARSER=1 \
    -DBUILD_TF_LITE_PARSER=1 \
    -DBUILD_TESTS=1 \
    -DARMCOMPUTENEON=1 \
    -DARMCOMPUTECL=1 \
    -DTF_LITE_GENERATED_PATH=/home/liang/armnn/tensorflow/tensorflow/lite/schema/ \
    -DPROTOBUF_ROOT=/home/liang/armnn/protobuf_arm64_root/ \
    -DPROTOBUF_LIBRARY_DEBUG=/home/liang/armnn/protobuf_arm64_root/lib/libprotobuf.so \
    -DPROTOBUF_LIBRARY_RELEASE=/home/liang/armnn/protobuf_arm64_root/lib/libprotobuf.so \
    -DARMNNREF=1 \
    -DPROTOBUF_INCLUDE_DIRS=/home/liang/armnn/protobuf_arm64_root/include/ \
    -DFLATBUFFERS_ROOT=/home/liang/armnn/flatbuffers/ \
    -DFLATBUFFERS_LIBRARY=/home/liang/armnn/flatbuffers/libflatbuffers.a \
    -DBUILD_ARMNN_SERIALIZER=1 \
    -DBUILD_ARMNN_QUANTIZER=1 \
    -DFLATC=/home/liang/armnn/flatbuffers/build_native/flatc
    

运行实例

  • arm设备上编译运行官方的例子时,可能会出现libprotocbuf.so.15, needed by xxx, not found的错误
  • 需要将在arm设备上本地编译google protocbuf

暂无

【ARMNN/编译】tensorflow lite版本相关推荐

  1. win10 + bazel-0.20.0 + tensorflow-1.13.1 编译tensorflow GPU版本的C++库

    win10 + bazel-0.20.0 + tensorflow-1.13.1 编译tensorflow GPU版本的C++库 安装所需软件/库 Step1. 安装vs2015,CUDA 10.0和 ...

  2. TensorFlow Lite编译Android so库

    工作中最近用到了Google TensorFlow技术,Android端对相机预览图进行预处理,并加载tflite模型并推测运行结果.期间需要用到lite的so库等相关sdk,并自己实践编译了一下. ...

  3. 在ARM板子上把玩Tensorflow Lite

    前几天Google的IO大会上发布的ML Kit,ML Kit为端上部署深度学习模型提供了一套完整的解决方案,本地运行.云端都支持.里面本地部署用到的就是Tensorflow lite. Tensor ...

  4. 从零开始在Windows上构建Android版的Tensorflow Lite

    文章目录 第一步:获取源代码 1. 工具:Git 2. 下载代码 第二步:了解代码 第三步:工具准备 1. Git 2. NDK 3. CMake 4. Python 3 5. Patch 第四步:环 ...

  5. ESP32 Tensorflow Lite (二)TensorFlow Lite Hello World

    TensorFlow Lite Hello World TensorFlow Lite Hello World 1. 导入依赖 2. 生成数据 3. 添加噪声 4. 数据分割 5. 设计模型 6. 训 ...

  6. ARM64开发板运行Tensorflow lite图片分类demo

    TensorFlow Lite C++ image classification demo 编译环境:docker 编译参考:https://tensorflow.google.cn/lite/gui ...

  7. Tensorflow Lite 编译

    Google最近发布了Tensorflow Lite,并且提供了demo,虽然该demo可以使用bazel build –cxxopt='–std=c++11' //tensorflow/contri ...

  8. TensorFlow工作笔记001---Centos7.3下安装TensorFlow最新版本,基于python2.7.5的,没有编译TensorFlow的源码

    技术交流QQ群[JAVA,.NET,BigData,AI]:170933152 Centos7.3下安装TensorFlow最新版本,基于python2.7.5的,没有编译TensorFlow的源码, ...

  9. 如何查看tensorflow lite toco编译时的各个参数

    https://github.com/tensorflow/models/issues/8148#issuecomment-641028423 想生成tflite格式的模型,用于安卓端做推理的时候,不 ...

最新文章

  1. c语言复杂性,C语言复杂函数
  2. python四十五:归一化继承
  3. Zabbix监控Oracle 连接数
  4. 禁止ultraiso开机自动加载镜像
  5. Win10应用程序无法正常启动0xc0000142错误的解决方法
  6. Eclipse编译时函数报错:Undefined reference to 'pthread_create'
  7. mysql5.7.13编译安装_编译安装MySQL-5.7.13
  8. Mimics 21.0软件学习笔记(一)基本操作
  9. 估计、偏差 、方差
  10. android重建模拟器,Android建立模拟器进行调试
  11. 如何在Cent OS7安装jdk
  12. 统计每天的新老用户,日活,周活,月活
  13. 【Simapro软件教程】参数进行灵敏度分析
  14. 解决8080端口号被占用问题
  15. 如何将计算机删除的程序还原,如何去恢复电脑上误删的文件?简单恢复
  16. Echarts 图表制作建议指南思维导图,教你什么数据画什么图
  17. C++数组——小鱼比可爱
  18. 利用copy命令合成一个图片马使用
  19. Docker系列(二十一)——Docker实例三Docker安装Tomcat实例
  20. JPG、RGB、YUV像素数据保存成JPG、BMP图片

热门文章

  1. ant-design pro导出表格数据为Excel文件
  2. 中国软件企业海辉并购美国公司 08年要海外上市
  3. urf-8 gbk gb2312之间的关系
  4. 在新版Vue中引入外部字体
  5. 【随机过程】 6 - 多元相关
  6. Bizhub227/287/367安装注意事项
  7. 第三次作业 大学生旅游调查问卷统计分析报告
  8. ctfhub密码口令---默认口令
  9. 第一次参加微软的TechNet 的培训活动!
  10. BAT,你好!字幕组,再见!——也许要跟美剧说再见了~