> 文档中心 > OpenHarmony 使用Tensorflow Lite

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 配置完会遇到下面的错误
    OpenHarmony 使用Tensorflow Lite
    修改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
  • 会遇到下面的错误
    OpenHarmony 使用Tensorflow Lite

  • 修改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。

简谱吧