Чтобы собрать Tensorflow Lite для arm64, я изменил:
тензор потока / lite / tools / make / target / aarch64_makefile.inc
, добавив оба к CXXFLAGSи CFLAGS:
-flax-vector-conversions \
-fomit-frame-pointer \
, что дает:
CXXFLAGS += \
-march=armv8-a \
-funsafe-math-optimizations \
-ftree-vectorize \
-flax-vector-conversions \
-fomit-frame-pointer \
-fPIC
CFLAGS += \
-march=armv8-a \
-funsafe-math-optimizations \
-ftree-vectorize \
-flax-vector-conversions \
-fomit-frame-pointer \
-fPIC
Для меня это избавило от error: cannot convert
, а также error: x29 cannot be used in asm here
.
После этого я смог собрать libtensorflow-lite.a
.
Команда из учебника по-прежнему выдает ошибку при сборке примеров приложений: undefined reference to flatbuffers::ClassicLocale::instance_
, решение этой проблемы описано в
https://github.com/tensorflow/tensorflow/issues/28863
В качестве идентификатора, если вы пытаетесь использовать док-контейнер из руководства:
https://tensorflow.google.cn/lite/guide/build_arm64
Itрекомендует использовать tensorflow/tensorflow:nightly-devel
, который в соответствии с докер-хабом в настоящее время является 6-месячным изображением (определенно не ночным):
https://hub.docker.com/r/tensorflow/tensorflow/tags/?page=1
По той же ссылке вы можете найти более свежую devel
контейнер, в моем случае я использовал devel-py3