OpenHarmony 使用Tensorflow Lite
Env
Tensorflow
- version 2.10
OpenHarmoy
- version 3.1 release
- ohos-sdk : http://download.ci.openharmony.cn/version/Release_Version/OpenHarmony-3.1.9.2/20221018_131027/version-Release_Version-OpenHarmony-3.1.9.2-20221018_131027-ohos-sdk.tar.gz
Usage
cross-build
- 解压ohos-sdk, 根据不同的OS解压不同的文件,博主解压了
linux/toolchain.tar.gz
文件,找到其中的ohos.toolchain.cmake
文件,作为我们交叉编译的工具链CMAKE_TOOLCHAIN_FILE
参数. - 关于cmake需要修改的配置 查看该issue https://gitee.com/mindspore/mindspore/issues/I5TS37
- 下载tensorflow代码,进行交叉编译
# 进入tensorflow 代码根目录mkdir /home/yons/data/tensorflow/build_minimalcd /home/yons/data/tensorflow/build_minimalcmake -DCMAKE_TOOLCHAIN_FILE=${path}ohos-sdk/linux/native/build/cmake/ohos.toolchain.cmake -DTFLITE_ENABLE_XNNPACK=OFF ../tensorflow/lite/examples/minimal
- cmake 配置完会遇到下面的错误
修改cpuinfo
# cpuinfo/CMakeLists.txt 54 set(CMAKE_SYSTEM_PROCESSOR armv7) # cpuinfo/CMakeLists.txt 76 IF(CMAKE_SYSTEM_NAME MATCHES "OHOS") SET(CMAKE_SYSTEM_NAME Linux)ENDIF() # cpuinfo/CMakeLists.txt 883 SET(CMAKE_SYSTEM_NAME OHOS)
- cmake build
cmake --build ./ -j 20
-
会遇到下面的错误
-
修改flatbuffers
参考如下的连接
https://github.com/google/flatbuffers/issues/7587 -
重现build
cmake --build ./ -j 20
- 可以顺利的编译出
minimal
二进制执行文件。
Inference
- 使用OHOS 提供的
hdc
将文件拷贝到设备/data/
目录下面。
#发送文件hdc file send file /data# 进入设备hdc shellcd /datachmod +x minimal./minimal model.tflite
- 模型可以从tensorflow hub 上获取,https://tensorflow.google.cn/hub?hl=zh-cn。