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.