LiteRT CompiledModel API, Python'da kullanılabilir. Bu API, LiteRT çalışma zamanıyla 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ükleyin
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")
Bellek içi arabellekten de derlenmiş bir model 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ğerine sahip 0, 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 dizilerini (write) yazmayı ve NumPy dizilerini (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 ucun desteklendiğini öğrenmek istiyorsanız burayı inceleyin.