From 82b5231852d9549ec4c872ec623f22efca424a55 Mon Sep 17 00:00:00 2001 From: Nam Vu Date: Wed, 27 Oct 2021 14:19:53 -0500 Subject: [PATCH 1/3] Handle edgetpu model inference --- detect.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/detect.py b/detect.py index a8d7e0b6a8c9..f3cc05d2b013 100644 --- a/detect.py +++ b/detect.py @@ -107,7 +107,18 @@ def wrap_frozen_graph(gd, inputs, outputs): elif saved_model: model = tf.keras.models.load_model(w) elif tflite: - interpreter = tf.lite.Interpreter(model_path=w) # load TFLite model + if "edgetpu" in w: + import tflite_runtime.interpreter as tflite # import tflite_runtime: https://www.tensorflow.org/lite/guide/python#install_tensorflow_lite_for_python + import platform + EDGETPU_SHARED_LIB = { + 'Linux': 'libedgetpu.so.1', + 'Darwin': 'libedgetpu.1.dylib', + 'Windows': 'edgetpu.dll' + }[platform.system()] # Install libedgetpu: https://coral.ai/software/#edgetpu-runtime + interpreter = tflite.Interpreter(model_path=w, + experimental_delegates=[tflite.load_delegate(EDGETPU_SHARED_LIB)]) # load TFLite model with edgetpu delegation. + else: + interpreter = tf.lite.Interpreter(model_path=w) # load TFLite model interpreter.allocate_tensors() # allocate input_details = interpreter.get_input_details() # inputs output_details = interpreter.get_output_details() # outputs From 2441ac037c38e8e174d94e35fe3e8eb7e049eb4e Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 3 Nov 2021 22:39:53 +0000 Subject: [PATCH 2/3] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- detect.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/detect.py b/detect.py index f3cc05d2b013..70ca0facf752 100644 --- a/detect.py +++ b/detect.py @@ -115,9 +115,9 @@ def wrap_frozen_graph(gd, inputs, outputs): 'Darwin': 'libedgetpu.1.dylib', 'Windows': 'edgetpu.dll' }[platform.system()] # Install libedgetpu: https://coral.ai/software/#edgetpu-runtime - interpreter = tflite.Interpreter(model_path=w, + interpreter = tflite.Interpreter(model_path=w, experimental_delegates=[tflite.load_delegate(EDGETPU_SHARED_LIB)]) # load TFLite model with edgetpu delegation. - else: + else: interpreter = tf.lite.Interpreter(model_path=w) # load TFLite model interpreter.allocate_tensors() # allocate input_details = interpreter.get_input_details() # inputs From 69041800416734dc6dcca416aa2ba17b984aaf5f Mon Sep 17 00:00:00 2001 From: Glenn Jocher Date: Wed, 3 Nov 2021 23:51:31 +0100 Subject: [PATCH 3/3] Cleanup Rename `tflite_runtime.interpreter as tflite` to `tflite_runtime.interpreter as tflri` to avoid conflict with existing `tflite` boolean --- detect.py | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/detect.py b/detect.py index 70ca0facf752..eb29022fe80b 100644 --- a/detect.py +++ b/detect.py @@ -8,6 +8,7 @@ import argparse import os +import platform import sys from pathlib import Path @@ -107,16 +108,12 @@ def wrap_frozen_graph(gd, inputs, outputs): elif saved_model: model = tf.keras.models.load_model(w) elif tflite: - if "edgetpu" in w: - import tflite_runtime.interpreter as tflite # import tflite_runtime: https://www.tensorflow.org/lite/guide/python#install_tensorflow_lite_for_python - import platform - EDGETPU_SHARED_LIB = { - 'Linux': 'libedgetpu.so.1', - 'Darwin': 'libedgetpu.1.dylib', - 'Windows': 'edgetpu.dll' - }[platform.system()] # Install libedgetpu: https://coral.ai/software/#edgetpu-runtime - interpreter = tflite.Interpreter(model_path=w, - experimental_delegates=[tflite.load_delegate(EDGETPU_SHARED_LIB)]) # load TFLite model with edgetpu delegation. + if "edgetpu" in w: # https://www.tensorflow.org/lite/guide/python#install_tensorflow_lite_for_python + import tflite_runtime.interpreter as tflri + delegate = {'Linux': 'libedgetpu.so.1', # install libedgetpu https://coral.ai/software/#edgetpu-runtime + 'Darwin': 'libedgetpu.1.dylib', + 'Windows': 'edgetpu.dll'}[platform.system()] + interpreter = tflri.Interpreter(model_path=w, experimental_delegates=[tflri.load_delegate(delegate)]) else: interpreter = tf.lite.Interpreter(model_path=w) # load TFLite model interpreter.allocate_tensors() # allocate