Comments (4)
The problem seems to be a bit more complex than the proposed solution. If I run the script tensorflow/lite/micro/tools/ci_build/test_all.sh, the Arduino build fails with the following errors:
/tmp/tflite-arduino-build/libraries/tensorflow_lite/tensorflow/lite/micro/all_ops_resolver.cpp.o: In function `tflite::AllOpsResolver::AllOpsResolver()':
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:118: undefined reference to `tflite::ops::micro::Register_ABS()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:123: undefined reference to `tflite::ops::micro::Register_ADD()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:128: undefined reference to `tflite::Register_ADD_N()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:134: undefined reference to `tflite::ops::micro::Register_ARG_MAX()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:139: undefined reference to `tflite::ops::micro::Register_ARG_MIN()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:144: undefined reference to `tflite::Register_AVERAGE_POOL_2D()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:149: undefined reference to `tflite::Register_BATCH_TO_SPACE_ND()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:157: undefined reference to `tflite::ops::micro::Register_CEIL()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:168: undefined reference to `tflite::ops::micro::Register_CONCATENATION()'
/tmp/tflite-arduino-build/libraries/tensorflow_lite/tensorflow/lite/micro/all_ops_resolver.cpp.o: In function `tflite::AllOpsResolver::AllOpsResolver()':
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:173: undefined reference to `tflite::Register_CONV_2D()'
/tmp/tflite-arduino-build/libraries/tensorflow_lite/tensorflow/lite/micro/all_ops_resolver.cpp.o: In function `tflite::AllOpsResolver::AllOpsResolver()':
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:178: undefined reference to `tflite::ops::micro::Register_COS()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:183: undefined reference to `tflite::Register_CUMSUM()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:189: undefined reference to `tflite::Register_DEPTH_TO_SPACE()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:194: undefined reference to `tflite::Register_DEPTHWISE_CONV_2D()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:199: undefined reference to `tflite::ops::micro::Register_DEQUANTIZE()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:204: undefined reference to `tflite::Register_DETECTION_POSTPROCESS()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:209: undefined reference to `tflite::Register_ELU()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:214: undefined reference to `tflite::ops::micro::Register_EQUAL()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:218: undefined reference to `tflite::Register_ETHOSU()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:220: undefined reference to `tflite::GetString_ETHOSU()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:240: undefined reference to `tflite::ops::micro::Register_FLOOR()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:244: undefined reference to `tflite::Register_FLOOR_DIV()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:249: undefined reference to `tflite::Register_FLOOR_MOD()'
/tmp/tflite-arduino-build/libraries/tensorflow_lite/tensorflow/lite/micro/all_ops_resolver.cpp.o: In function `tflite::AllOpsResolver::AllOpsResolver()':
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:254: undefined reference to `tflite::Register_FULLY_CONNECTED()'
/tmp/tflite-arduino-build/libraries/tensorflow_lite/tensorflow/lite/micro/all_ops_resolver.cpp.o: In function `tflite::AllOpsResolver::AllOpsResolver()':
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:271: undefined reference to `tflite::ops::micro::Register_GREATER()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:276: undefined reference to `tflite::ops::micro::Register_GREATER_EQUAL()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:282: undefined reference to `tflite::ops::micro::Register_HARD_SWISH()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:292: undefined reference to `tflite::ops::micro::Register_L2_NORMALIZATION()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:297: undefined reference to `tflite::Register_L2_POOL_2D()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:302: undefined reference to `tflite::Register_LEAKY_RELU()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:307: undefined reference to `tflite::ops::micro::Register_LESS()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:313: undefined reference to `tflite::ops::micro::Register_LESS_EQUAL()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:318: undefined reference to `tflite::ops::micro::Register_LOG()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:324: undefined reference to `tflite::ops::micro::Register_LOGICAL_AND()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:330: undefined reference to `tflite::ops::micro::Register_LOGICAL_NOT()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:336: undefined reference to `tflite::ops::micro::Register_LOGICAL_OR()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:342: undefined reference to `tflite::ops::micro::Register_LOGISTIC()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:352: undefined reference to `tflite::Register_MAX_POOL_2D()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:347: undefined reference to `tflite::ops::micro::Register_MAXIMUM()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:356: undefined reference to `tflite::ops::micro::Register_MEAN()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:362: undefined reference to `tflite::ops::micro::Register_MINIMUM()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:366: undefined reference to `tflite::ops::micro::Register_MUL()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:371: undefined reference to `tflite::ops::micro::Register_NEG()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:377: undefined reference to `tflite::ops::micro::Register_NOT_EQUAL()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:381: undefined reference to `tflite::ops::micro::Register_PACK()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:386: undefined reference to `tflite::ops::micro::Register_PAD()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:392: undefined reference to `tflite::ops::micro::Register_PADV2()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:397: undefined reference to `tflite::ops::micro::Register_PRELU()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:401: undefined reference to `tflite::Register_QUANTIZE()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:407: undefined reference to `tflite::ops::micro::Register_REDUCE_MAX()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:411: undefined reference to `tflite::ops::micro::Register_RELU()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:417: undefined reference to `tflite::ops::micro::Register_RELU6()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:422: undefined reference to `tflite::ops::micro::Register_RESHAPE()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:427: undefined reference to `tflite::Register_RESIZE_BILINEAR()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:432: undefined reference to `tflite::ops::micro::Register_RESIZE_NEAREST_NEIGHBOR()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:438: undefined reference to `tflite::ops::micro::Register_ROUND()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:443: undefined reference to `tflite::ops::micro::Register_RSQRT()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:447: undefined reference to `tflite::Register_SHAPE()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:451: undefined reference to `tflite::ops::micro::Register_SIN()'
/tmp/tflite-arduino-build/libraries/tensorflow_lite/tensorflow/lite/micro/all_ops_resolver.cpp.o: In function `tflite::AllOpsResolver::AllOpsResolver()':
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:456: undefined reference to `tflite::Register_SOFTMAX()'
/tmp/tflite-arduino-build/libraries/tensorflow_lite/tensorflow/lite/micro/all_ops_resolver.cpp.o: In function `tflite::AllOpsResolver::AllOpsResolver()':
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:462: undefined reference to `tflite::Register_SPACE_TO_BATCH_ND()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:466: undefined reference to `tflite::Register_SPACE_TO_DEPTH()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:472: undefined reference to `tflite::ops::micro::Register_SPLIT()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:477: undefined reference to `tflite::ops::micro::Register_SPLIT_V()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:486: undefined reference to `tflite::ops::micro::Register_SQRT()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:492: undefined reference to `tflite::ops::micro::Register_SQUARE()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:481: undefined reference to `tflite::Register_SQUEEZE()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:497: undefined reference to `tflite::ops::micro::Register_STRIDED_SLICE()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:502: undefined reference to `tflite::ops::micro::Register_SUB()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:507: undefined reference to `tflite::Register_SVDF()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:511: undefined reference to `tflite::ops::micro::Register_TANH()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:517: undefined reference to `tflite::Register_TRANSPOSE_CONV()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:521: undefined reference to `tflite::Register_TRANSPOSE()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:527: undefined reference to `tflite::ops::micro::Register_UNPACK()'
collect2: error: ld returned 1 exit status
Multiple libraries were found for "TensorFlowLite.h"
Used: /home/username/Arduino/libraries/tensorflow_lite
Error: build failed: exit status 1
Error during build
Cleaning up to prevent Kokoro errors (see http://b/186570469)
find: ‘../google/’: No such file or directory
rm -rf tensorflow/lite/micro/tools/make/gen
rm -rf tensorflow/lite/micro/tools/make/downloads
from tflite-micro.
Thanks for creating the issue. We'll look into this.
from tflite-micro.
Looks like an error on my part during the Makefile source refactor. Your change plus adding MICROLITE_CC_KERNEL_SRCS to ALL_SRCS (Makefile line 614) appears to fix the issue.
from tflite-micro.
The issue seems to persist even with those changes (if I ran the github actions correctly, it's the first time I tried):
https://github.com/jenselofsson/tflite-micro/runs/3018202702?check_suite_focus=true
I tried looking around in the test scripts and in the Makefile to see if I could spot if anything is needed particularly related to Arduino, but i couldn't find anything obvious (although I'm not too experienced with how the Arduino build system works).
For simplicities sake I'll submit a PR to tensorflow/tflite-micro instead of my fork.
from tflite-micro.
Related Issues (20)
- Unexpected result on cortex-m7 target with float model from HelloWorld example HOT 3
- Cortex-M CI Run Failed HOT 5
- Sound (not speech) recognition on esp32-s3-eye v2.2 HOT 4
- how to combine audio_preprocessor model and micro_speech into one tflite HOT 1
- WideDynamicFuncLut cause crash on macOS
- Generated tflm-tree is not sufficient HOT 2
- CMSIS-NN results in no improvement in FCNs HOT 7
- Figuring out the *arena size* and required *operations* (before deploying by TFLM) HOT 4
- On-Device Training with TensorFlow Lite for Microcontrollers (TFLM) HOT 3
- Can this be done in tflm? HOT 5
- Supporting Qualcomm Sensing Hub AI Accelerator? HOT 6
- Link Errors Building `tflite_micro` Python Package HOT 1
- `bazel build //tensorflow/lite/micro/examples/micro_speech:audio_preprocessor` fails HOT 7
- Origin of `micro_speech` `audio_preprocessor_test.py` `expected` var values? HOT 1
- `audio_preprocessor.py` generating custom op? HOT 2
- Add meta-data to generic benchmark HOT 2
- How to add other options? HOT 1
- Cannot fetch required TF version 2.15.0.post1 for building TensorFlow Lite Micro example hello_world: HOT 10
- Run-CI CI Run Failed HOT 3
- Run-CI CI Run Failed
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tflite-micro.