为Edge TPU构建Tensorflow Lite失败

问题描述

我正在尝试让Tensorflow Lite + EdgeTpu在C ++的ARM上运行,但是在使用EdgeTpu文档中的指定提交来构建Tensorflow Lite时遇到问题。 (我正在使用Tensorflow Lite开发最新版的Tensorflow)。

根据EdgeTpu文档(https://coral.ai/docs/edgetpu/tflite-cpp),需要使用以下提交构建tensorflow lite:d855adfc5a0195788bf5f92c3c7352e638aa1109。但是在使用以下命令进行构建时:

./tensorflow/lite/tools/make/download_dependencies.sh
./tensorflow/lite/tools/make/build_aarch64_lib.sh

我收到以下错误消息:

tensorflow/tensorflow/lite/tools/make/gen/aarch64_armv8-a/lib/libtensorflow-lite.a(densify.o): In function `tflite::ops::builtin::densify::Eval(TfLiteContext*,TfLiteNode*)':
densify.cc:(.text+0x378): undefined reference to `tflite::optimize::sparsity::FormatConverter<signed char>::FormatConverter(std::vector<int,std::allocator<int> > const&,TfLiteSparsity const&)'
densify.cc:(.text+0x384): undefined reference to `tflite::optimize::sparsity::FormatConverter<signed char>::SparseToDense(signed char const*)'
densify.cc:(.text+0x5f0): undefined reference to `tflite::optimize::sparsity::FormatConverter<float>::FormatConverter(std::vector<int,TfLiteSparsity const&)'
densify.cc:(.text+0x5fc): undefined reference to `tflite::optimize::sparsity::FormatConverter<float>::SparseToDense(float const*)'
collect2: error: ld returned 1 exit status

因此它确实生成了lib文件,但是生成示例失败。当我尝试将lib与自己的代码一起使用时,也会遇到相同的错误。在tensorflow repo上,此问题似乎已解决。但是我需要使用EdgeTpu的特定提交。

解决方法

获得有关github问题的答案。放在这里以备将来参考。

结果表明,指定的提交在MAKEFILE中缺少文件。应用以下修补程序:https://github.com/google-coral/edgetpu/issues/201,并且构建正常。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...