LiteRT CompiledModel API, Python'da kullanılabilir. Bu API, LiteRT çalışma zamanı ile TFLite modellerini derlemek ve çalıştırmak için üst düzey bir arayüz sunar.
Aşağıdaki kılavuzda, CompiledModel Python API'si ile temel CPU çıkarımı gösterilmektedir.
pip paketini yükleme
LiteRT pip paketini Python ortamınıza yükleyin:
pip install ai-edge-litert
Temel çıkarım
CompiledModel oluştur
.tflite dosyasından derlenmiş bir model oluşturun. Mevcut Python sarmalayıcı, varsayılan olarak CPU için derlenir.
from ai_edge_litert.compiled_model import CompiledModel
model = CompiledModel.from_file("mymodel.tflite")
Ayrıca, bellek içi arabellekten derlenmiş bir model de oluşturabilirsiniz:
from ai_edge_litert.compiled_model import CompiledModel
with open("mymodel.tflite", "rb") as f:
model = CompiledModel.from_buffer(f.read())
Giriş ve Çıkış Arabellekleri Oluşturma
Çıkarım için modele besleyeceğiniz giriş verilerini ve modelin çıkarım çalıştırdıktan sonra ürettiği çıkış verilerini tutmak üzere gerekli veri yapılarını (arabellekler) oluşturun.
signature_index = 0
input_buffers = model.create_input_buffers(signature_index)
output_buffers = model.create_output_buffers(signature_index)
signature_index değerinin 0 olması, modeldeki ilk imzayı seçer.
CPU belleği kullanıyorsanız girişleri doğrudan giriş arabelleklerine NumPy dizileri yazarak doldurun.
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)
Modeli çağırma
Giriş ve çıkış arabelleklerini sağlayarak modeli çalıştırın.
model.run_by_index(signature_index, input_buffers, output_buffers)
Çıkışları alma
Model çıkışını doğrudan bellekten okuyarak çıkışları alın.
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)
TensorBuffer hareketini kullanın
LiteRT, TensorBuffer API aracılığıyla G/Ç arabellek birlikte çalışabilirliği için yerleşik destek sağlar. Bu API, NumPy dizileri (write) yazmayı ve NumPy dizileri (read) okumayı destekler. Desteklenen dtypes'lar np.float32, np.int32 ve np.int8'dir.
Mevcut ana makine belleğiyle desteklenen bir arabellek de oluşturabilirsiniz:
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)
İmza adına göre çalıştırmak için önce model imzalarını inceleyin, ardından giriş/çıkış adlarından TensorBuffer örneklerine eşlemeler sağlayın:
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},
)
TensorBuffer API'nin nasıl uygulandığına dair daha kapsamlı bir görünüm için TensorBuffer adresindeki kaynak koduna bakın.
GPU hızlandırıcıyı kullanma
GPU'nuz varsa CompiledModel oluşturma API'sine HardwareAccelerator.GPU seçeneğini ekleyerek kullanabilirsiniz.
from ai_edge_litert.compiled_model import CompiledModel
from ai_edge_litert.compiled_model import HardwareAccelerator
model = CompiledModel.from_file("mymodel.tflite", HardwareAccelerator.GPU)
Platformunuz için hangi arka uçun desteklendiğini öğrenmek için bu sayfayı inceleyin.