【ARMNN/编译】tensorflow lite版本
说在前面
- 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补充
- 若启用
ArmnnConverter
和ArmnnQuantizer
,则需编译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补充
- 启用
NEON
或CL
加速请添加-DARMCOMPUTENEON=1 -DARMCOMPUTECL=1
启用的话注意
ARMNN
与ComputeLibrary
版本要一致,不然可能出现类似的错误: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);
- 建议启用
ArmnnConverter
和ArmnnQuantizer
-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版本相关推荐
- 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和 ...
- TensorFlow Lite编译Android so库
工作中最近用到了Google TensorFlow技术,Android端对相机预览图进行预处理,并加载tflite模型并推测运行结果.期间需要用到lite的so库等相关sdk,并自己实践编译了一下. ...
- 在ARM板子上把玩Tensorflow Lite
前几天Google的IO大会上发布的ML Kit,ML Kit为端上部署深度学习模型提供了一套完整的解决方案,本地运行.云端都支持.里面本地部署用到的就是Tensorflow lite. Tensor ...
- 从零开始在Windows上构建Android版的Tensorflow Lite
文章目录 第一步:获取源代码 1. 工具:Git 2. 下载代码 第二步:了解代码 第三步:工具准备 1. Git 2. NDK 3. CMake 4. Python 3 5. Patch 第四步:环 ...
- ESP32 Tensorflow Lite (二)TensorFlow Lite Hello World
TensorFlow Lite Hello World TensorFlow Lite Hello World 1. 导入依赖 2. 生成数据 3. 添加噪声 4. 数据分割 5. 设计模型 6. 训 ...
- ARM64开发板运行Tensorflow lite图片分类demo
TensorFlow Lite C++ image classification demo 编译环境:docker 编译参考:https://tensorflow.google.cn/lite/gui ...
- Tensorflow Lite 编译
Google最近发布了Tensorflow Lite,并且提供了demo,虽然该demo可以使用bazel build –cxxopt='–std=c++11' //tensorflow/contri ...
- TensorFlow工作笔记001---Centos7.3下安装TensorFlow最新版本,基于python2.7.5的,没有编译TensorFlow的源码
技术交流QQ群[JAVA,.NET,BigData,AI]:170933152 Centos7.3下安装TensorFlow最新版本,基于python2.7.5的,没有编译TensorFlow的源码, ...
- 如何查看tensorflow lite toco编译时的各个参数
https://github.com/tensorflow/models/issues/8148#issuecomment-641028423 想生成tflite格式的模型,用于安卓端做推理的时候,不 ...
最新文章
- c语言复杂性,C语言复杂函数
- python四十五:归一化继承
- Zabbix监控Oracle 连接数
- 禁止ultraiso开机自动加载镜像
- Win10应用程序无法正常启动0xc0000142错误的解决方法
- Eclipse编译时函数报错:Undefined reference to 'pthread_create'
- mysql5.7.13编译安装_编译安装MySQL-5.7.13
- Mimics 21.0软件学习笔记(一)基本操作
- 估计、偏差 、方差
- android重建模拟器,Android建立模拟器进行调试
- 如何在Cent OS7安装jdk
- 统计每天的新老用户,日活,周活,月活
- 【Simapro软件教程】参数进行灵敏度分析
- 解决8080端口号被占用问题
- 如何将计算机删除的程序还原,如何去恢复电脑上误删的文件?简单恢复
- Echarts 图表制作建议指南思维导图,教你什么数据画什么图
- C++数组——小鱼比可爱
- 利用copy命令合成一个图片马使用
- Docker系列(二十一)——Docker实例三Docker安装Tomcat实例
- JPG、RGB、YUV像素数据保存成JPG、BMP图片