Coral USB Accelerator je zařízení od společnosti Google, které umožňuje rychlejší provádění strojového učení pomocí Tensor Processing Unit (TPU). Ačkoli TensorFlow.js je knihovna navržená pro spuštění strojového učení v JavaScriptu, Coral USB Accelerator nativně nepodporuje TensorFlow.js.
Nicméně je možné vytvořit propojení mezi Coral USB Acceleratorem a TensorFlow.js prostřednictvím následujícího procesu:
- Vytvořte a natrénujte model v TensorFlow (Python) a konvertujte ho do formátu, který může být použit s Edge TPU (Coral USB Accelerator).
- Použijte Python API pro práci s modelem na zařízení Coral USB Accelerator.
- Vytvořte REST API nebo WebSocket server, který komunikuje s modelem na Coral USB Accelerator pomocí Python API.
- Vytvořte webovou aplikaci s TensorFlow.js a komunikujte s REST API nebo WebSocket serverem pro získání výsledků inferencí.
Následující je příklad Python kódu, který ukazuje jak použít Coral USB Accelerator s TensorFlow Lite modely:
import argparse
import numpy as np
from PIL import Image
from tflite_runtime.interpreter import Interpreter, load_delegate
def load_tflite_model(model_path, delegates=[]):
interpreter = Interpreter(model_path, experimental_delegates=delegates)
interpreter.allocate_tensors()
return interpreter
def process_image(image_path, input_shape):
img = Image.open(image_path).resize(input_shape)
img_array = np.asarray(img).astype('float32')
return img_array
def main():
parser = argparse.ArgumentParser()
parser.add_argument('model_path', help='Path to the TFLite model')
parser.add_argument('image_path', help='Path to the input image')
args = parser.parse_args()
model_path = args.model_path
image_path = args.image_path
delegates = [load_delegate('libedgetpu.so.1')]
interpreter = load_tflite_model(model_path, delegates)
input_shape = interpreter.get_input_details()[0]['shape'][1:3]
input_tensor = process_image(image_path, input_shape)
interpreter.set_tensor(interpreter.get_input_details()[0]['index'], input_tensor)
interpreter.invoke()
output_data = interpreter.get_tensor(interpreter.get_output_details()[0]['index'])
print('Output:', output_data)
if __name__ == '__main__':
main()
Výše uvedený kód načte TensorFlow Lite model a spustí inferenci s vstupním obrazem na Coral USB Accelerator. Pro spuštění kódu uložte jej do souboru s názvem coral_inference.py
a spusťte následující příkaz:
python coral_inference.py /path/to/tflite_model /path/to/input_image
Nyní můžete vytvořit REST API nebo WebSocket server pro komunikaci s modelem a poté propojit s TensorFlow.js webovou aplikací.