LiteRT CompiledModel Python API, LiteRT CompiledModel Python API, LiteRT CompiledModel Python API

API-ja LiteRT CompiledModel është e disponueshme në Python, duke ofruar një ndërfaqe të nivelit të lartë për kompilimin dhe ekzekutimin e modeleve TFLite me kohën e ekzekutimit LiteRT.

Udhëzuesi i mëposhtëm tregon përfundimin bazë të CPU-së me API-n e CompiledModel Python.

Instaloni paketën pip

Instaloni paketën LiteRT pip në mjedisin tuaj Python:

pip install ai-edge-litert

Përfundim bazë

Krijo Modelin CompiledModel

Krijo një model të kompiluar nga një skedar .tflite . Mbështjellësi aktual i Python kompilohet për CPU-në si parazgjedhje.

from ai_edge_litert.compiled_model import CompiledModel

model = CompiledModel.from_file("mymodel.tflite")

Gjithashtu mund të krijoni një model të kompiluar nga një memorje buffer në memorie:

from ai_edge_litert.compiled_model import CompiledModel

with open("mymodel.tflite", "rb") as f:
  model = CompiledModel.from_buffer(f.read())

Krijo bufera hyrëse dhe dalëse

Krijoni strukturat e nevojshme të të dhënave (buferat) për të mbajtur të dhënat hyrëse që do t'i ushqeni modelit për përfundim, dhe të dhënat dalëse që modeli prodhon pas ekzekutimit të përfundimit.

signature_index = 0
input_buffers = model.create_input_buffers(signature_index)
output_buffers = model.create_output_buffers(signature_index)

Vlera 0 e signature_index zgjedh nënshkrimin e parë në model.

Nëse po përdorni memorien e CPU-së, plotësoni të dhënat hyrëse duke shkruar vargjet NumPy direkt në buffer-at hyrëse.

import numpy as np

input_data = np.array([[1.0, 2.0, 3.0, 4.0]], dtype=np.float32)
input_buffers[0].write(input_data)

Thirrni modelin

Duke siguruar buffer-at e hyrjes dhe daljes, ekzekutoni modelin.

model.run_by_index(signature_index, input_buffers, output_buffers)

Merrni Rezultatet

Merrni rezultatet duke lexuar drejtpërdrejti daljen e modelit nga memoria.

import numpy as np

# Replace num_elements with the size of your model's output tensor.
num_elements = 4
output_array = output_buffers[0].read(num_elements, np.float32)

Përdorni TensorBuffer

LiteRT ofron mbështetje të integruar për ndërveprimin e buffer-ave I/O përmes API-t TensorBuffer , i cili mbështet shkrimin e vargjeve NumPy ( write ) dhe leximin e vargjeve NumPy ( read ). Llojet d të mbështetura janë np.float32 , np.int32 dhe np.int8 .

Gjithashtu mund të krijoni një buffer të mbështetur nga memoria ekzistuese e hostit:

import numpy as np
from ai_edge_litert.tensor_buffer import TensorBuffer

input_array = np.array([[1.0, 2.0, 3.0, 4.0]], dtype=np.float32)
input_buffer = TensorBuffer.create_from_host_memory(input_array)

Për të ekzekutuar sipas emrit të nënshkrimit, së pari inspektoni nënshkrimet e modelit dhe më pas jepni harta nga emrat e hyrjes/daljes në instancat TensorBuffer :

from ai_edge_litert.tensor_buffer import TensorBuffer

signatures = model.get_signature_list()
# Example signature structure:
# {"serving_default": {"inputs": ["input_0"], "outputs": ["output_0"]}}

input_buffer = TensorBuffer.create_from_host_memory(input_array)
output_buffer = model.create_output_buffer_by_name("serving_default", "output_0")

model.run_by_name(
  "serving_default",
  {"input_0": input_buffer},
  {"output_0": output_buffer},
)

Për një pamje më të plotë se si zbatohet API-ja TensorBuffer, shihni kodin burimor në TensorBuffer .

Përdorni Përshpejtuesin e GPU-së

Nëse keni GPU, mund ta përdorni thjesht duke shtuar opsionin HardwareAccelerator.GPU në API-n e krijimit të CompiledModel.

from ai_edge_litert.compiled_model import CompiledModel
from ai_edge_litert.compiled_model import HardwareAccelerator

model = CompiledModel.from_file("mymodel.tflite", HardwareAccelerator.GPU)

Kontrolloni këtë për të parë se cili backend mbështetet për platformën tuaj.