ml — Maschinelles Lernen¶
Das Modul ml enthält Funktionen zum Laden und Ausführen von TensorFlow-Lite-Modellen auf der OpenMV Cam. Das Modul stellt eine einzige für Benutzer sichtbare Klasse bereit, ml.Model, die die zugrunde liegende C-Klasse Model mit zusätzlichen Annehmlichkeiten auf Python-Seite umhüllt (automatisches Laden von Labels und automatische Konvertierung von Bild zu Tensor).
Untermodule¶
class Model – Modellcontainer¶
- class ml.Model(path: str, *, postprocess: object = None) Model¶
Lädt ein TensorFlow-Lite-Modell aus
pathin den Speicher und bereitet es für die Inferenz vor.pathkann eine Datei im Dateisystem oder der Name eines in das Firmware-Image integrierten Modells sein.postprocess ist ein optionales aufrufbares Objekt zur Nachbearbeitung, das von
Model.predictnach der Inferenz aufgerufen wird. Es erhält(model, inputs, outputs)und kann einen beliebigen Wert zurückgeben (z. B. eine Liste von Begrenzungsrahmen). Falls angegeben, erhält der Nachbearbeiter aus Performancegründen die rohen Ausgabetensoren des Modells (nicht dequantisiert).Bei der Konstruktion versucht der Wrapper zusätzlich, eine
.txt-Datei mit demselben Basisnamen wiepathzu laden; wird sie gefunden, wird jede Zeile inModel.labelsgeladen. Andernfalls istModel.labelsgleichNone.- predict(inputs: list, *, callback: object = None) list¶
Führt die Inferenz für das Modell aus und gibt die Ausgabetensoren zurück.
inputs ist eine Liste mit einem Eintrag pro Eingabetensor des Modells. Jeder Eintrag kann sein:
Ein
ndarray, dessen Form mit dem entsprechenden Eintrag inModel.input_shapeübereinstimmt. Die Werte werden mit der Skala und dem Nullpunkt des Eingabetensors quantisiert (float32-Eingaben werden unverändert durchgereicht).Ein
image.Image-Objekt. Der Wrapper umhüllt es automatisch in einemml.preprocessing.Normalization-Objekt, um es in den erwarteten Tensor zu konvertieren.Ein aufrufbares Objekt. Es wird mit
(bytearray, shape, dtype)aufgerufen und soll das bytearray mit den Daten des Eingabetensors füllen.
callback ist ein optionales aufrufbares Objekt zur Nachbearbeitung pro Aufruf. Falls angegeben, überschreibt es das im Konstruktor gesetzte
postprocessnur für diesen Aufruf. Der Callback erhält(model, inputs, outputs)und sein Rückgabewert wird vonpredictzurückgegeben.Gibt eine Liste von
ndarray-Ausgaben zurück, eine pro Ausgabetensor des Modells. Ist kein Nachbearbeiter aktiv, werden die Ausgaben zufloat32dequantisiert; ist ein Nachbearbeiter aktiv, werden ihm stattdessen die rohen Ausgabetensoren (mit dem nativen dtype jedes Tensors) übergeben.
- input_shape: list[tuple[int, ...]]¶
Eine Liste von Tupeln, die die Form jedes Eingabetensors angeben.
- input_dtype: list[str]¶
Eine Liste von Strings aus einem einzelnen Zeichen, die den dtype jedes Eingabetensors angeben:
'b'(int8),'B'(uint8),'h'(int16),'H'(uint16),'f'(float32).
- input_scale: list[float]¶
Eine Liste von Floats, die die Quantisierungsskala jedes Eingabetensors angeben.
- input_zero_point: list[int]¶
Eine Liste von Ints, die den Quantisierungs-Nullpunkt jedes Eingabetensors angeben.
- output_shape: list[tuple[int, ...]]¶
Eine Liste von Tupeln, die die Form jedes Ausgabetensors angeben.
- output_dtype: list[str]¶
Eine Liste von Strings aus einem einzelnen Zeichen, die den dtype jedes Ausgabetensors angeben:
'b'(int8),'B'(uint8),'h'(int16),'H'(uint16),'f'(float32).
- output_scale: list[float]¶
Eine Liste von Floats, die die Quantisierungsskala jedes Ausgabetensors angeben.
- output_zero_point: list[int]¶
Eine Liste von Ints, die den Quantisierungs-Nullpunkt jedes Ausgabetensors angeben.