google-coral / tflite

Examples using TensorFlow Lite API to run inference on Coral devices
https://coral.withgoogle.com
Apache License 2.0
181 stars 67 forks source link

(Google coral on RaPi 3B)RuntimeError: Internal: Unsupported data type: 0Node number 1 (EdgeTpuDelegateForCustomOp) failed to prepare. #40

Closed jamagola closed 3 years ago

jamagola commented 3 years ago

I am using Raspberry pi model 3B (armvl7) and new to the coral world. I was trying to follow instruction from coral and run classification example resulted in runtime error.

Following info may be useful: $sudo dpkg -l | grep edge ii libedgetpu1-std:armhf 15.0 armhf Support library for Edge TPU

I have tflite-runtime 2.5.0

Appreciate any help/info/suggestion(s).

Thank you

Namburger commented 3 years ago

Hello, your installation looks good, but it's possible that your linux user isn't in the plugdev group, could you try this?

$ sudo usermod -aG plugdev $USER
$ sudo reboot now
jamagola commented 3 years ago

Hello, your installation looks good, but it's possible that your linux user isn't in the plugdev group, could you try this?

$ sudo usermod -aG plugdev $USER
$ sudo reboot now

I tried that but the error persist.

Thank you

jamagola commented 3 years ago

Hello, your installation looks good, but it's possible that your linux user isn't in the plugdev group, could you try this?

$ sudo usermod -aG plugdev $USER
$ sudo reboot now

I tried that but the error persist.

Thank you

Following is the complete error message:

Traceback (most recent call last): File "classify_image.py", line 122, in <module> main() File "classify_image.py", line 100, in main interpreter.allocate_tensors() File "/home/pi/.virtualenvs/cv/lib/python3.7/site-packages/tflite_runtime/interpreter.py", line 259, in allocate_tensors return self._interpreter.AllocateTensors() RuntimeError: Internal: Unsupported data type: 0Node number 1 (EdgeTpuDelegateForCustomOp) failed to prepare.

Namburger commented 3 years ago

Humnnn, so I see that you are running in a virtual environment, it is possible that the wrong library is being loaded during runtime. My suggestion is to dig into "/home/pi/.virtualenvs/cv/lib/python3.7/site-packages/tflite_runtime" to make sure that it is actually tflite-runtime 2.5. You can also send me the strace to make sure that the right libedgetpu.so is being run. Something like:

$ strace python3 classify_image.py -- args ..... > strace.txt

Then you can attach the strace.txt, I can take a look at it for you

jamagola commented 3 years ago

Humnnn, so I see that you are running in a virtual environment, it is possible that the wrong library is being loaded during runtime. My suggestion is to dig into "/home/pi/.virtualenvs/cv/lib/python3.7/site-packages/tflite_runtime" to make sure that it is actually tflite-runtime 2.5. You can also send me the strace to make sure that the right libedgetpu.so is being run. Something like:

$ strace python3 classify_image.py -- args ..... > strace.txt

Then you can attach the strace.txt, I can take a look at it for you

I hope attached file is what you asked for. Thank you for all the help. strace.txt

Namburger commented 3 years ago

@jamagola yes, this is what I need, but also a little more: 1) From strace, this is where you are loading libedgetpu.so could you share the md5sum

$ md5sum /usr/lib/arm-linux-gnueabihf/libedgetpu.so.1

2) I still need some verification on the tflite_runtime package that you are loading in your cv python virtual env, can you try running this form the same cv env?

$ python3 -c 'print(__import("tflite_runtime").__version__)'
$ python3 -c 'print(__import("tflite_runtime").__git_version__)'
jamagola commented 3 years ago

@jamagola yes, this is what I need, but also a little more:

  1. From strace, this is where you are loading libedgetpu.so could you share the md5sum
$ md5sum /usr/lib/arm-linux-gnueabihf/libedgetpu.so.1
  1. I still need some verification on the tflite_runtime package that you are loading in your cv python virtual env, can you try running this form the same cv env?
$ python3 -c 'print(__import("tflite_runtime").__version__)'
$ python3 -c 'print(__import("tflite_runtime").__git_version__)'

Upon md5sum this is the response: b4fe1cfe6e74095767fa595dce7be805 /usr/lib/arm-linux-gnueabihf/libedgetpu.so.1

About tflite_runtime from cv environment: `>>> import tflite_runtime

tflite_runtime.version '2.5.0' tflite_runtime.__git_version__ '48c3bae94a8b324525b45f157d638dfd4e8c3be1'

`

Thank you

manoj7410 commented 3 years ago

@jamagola Were you able to fix this?

jamagola commented 3 years ago

@jamagola Were you able to fix this?

No, I couldn't fix the issue during the time of inquiries. However, I have switched to Raspberry Pi 4 and things went smooth with the 'edgetpu'.