ml — Maskininlärning

Modulen ml innehåller funktionalitet för att ladda och köra TensorFlow Lite-modeller på OpenMV Cam. Modulen exponerar en enda klass riktad mot användaren, ml.Model, som omsluter den underliggande C-klassen Model med ytterligare bekvämligheter på Python-sidan (automatisk inläsning av etiketter och automatisk konvertering från bild till tensor).

Undermoduler

class Model – Modellbehållare

class ml.Model(path: str, *, postprocess: object = None) Model

Laddar en TensorFlow Lite-modell från path till minnet och förbereder den för inferens. path kan vara en fil i filsystemet eller namnet på en modell som är inbyggd i firmware-avbildningen.

postprocess är ett valfritt efterbehandlingsanrop som anropas av Model.predict efter inferens. Det tar emot (model, inputs, outputs) och kan returnera vilket värde som helst (t.ex. en lista med begränsningsrutor). När det anges får efterbehandlaren modellens råa utdatatensorer (icke-dekvantiserade) för bättre prestanda.

Vid konstruktion försöker omslutaren dessutom ladda en .txt-fil med samma basnamn som path; om den hittas läses varje rad in i Model.labels. Annars är Model.labels None.

predict(inputs: list, *, callback: object = None) list

Kör inferens på modellen och returnerar utdatatensorerna.

inputs är en lista med en post per indatatensor i modellen. Varje post kan vara:

  • En ndarray vars form matchar motsvarande post i Model.input_shape. Värdena kvantiseras med indatatensorens skala och nollpunkt (float32-indata vidarebefordras oförändrade).

  • Ett image.Image-objekt. Omslutaren slår automatiskt in det i ett ml.preprocessing.Normalization-objekt för att konvertera det till den förväntade tensorn.

  • Ett anropsbart objekt. Det anropas med (bytearray, shape, dtype) och förväntas fylla bytearray med indatatensorens data.

callback är ett valfritt efterbehandlingsanrop per anrop. När det anges åsidosätter det det postprocess som angavs i konstruktorn endast för detta anrop. Återanropet tar emot (model, inputs, outputs) och dess returvärde returneras av predict.

Returnerar en lista med ndarray-utdata, en per utdatatensor i modellen. Om ingen efterbehandlare är aktiv dekvantiseras utdata till float32; om en efterbehandlare är aktiv skickas de råa utdatatensorerna (med varje tensors ursprungliga dtype) till den i stället.

len: int

Storleken på den laddade modellen i byte.

ram: int

Mängden RAM som används av modellens tensor-arena, i byte.

input_shape: list[tuple[int, ...]]

En lista med tupler som anger formen på varje indatatensor.

input_dtype: list[str]

En lista med strängar på ett tecken som anger varje indatatensors dtype: 'b' (int8), 'B' (uint8), 'h' (int16), 'H' (uint16), 'f' (float32).

input_scale: list[float]

En lista med flyttal som anger kvantiseringsskalan för varje indatatensor.

input_zero_point: list[int]

En lista med heltal som anger kvantiseringens nollpunkt för varje indatatensor.

output_shape: list[tuple[int, ...]]

En lista med tupler som anger formen på varje utdatatensor.

output_dtype: list[str]

En lista med strängar på ett tecken som anger varje utdatatensors dtype: 'b' (int8), 'B' (uint8), 'h' (int16), 'H' (uint16), 'f' (float32).

output_scale: list[float]

En lista med flyttal som anger kvantiseringsskalan för varje utdatatensor.

output_zero_point: list[int]

En lista med heltal som anger kvantiseringens nollpunkt för varje utdatatensor.

postprocess: object

Det efterbehandlingsanrop som angavs till konstruktorn, eller None.

labels: list[str]

Lista med etikettsträngar som laddats från .txt-filen bredvid modellen, eller None om ingen sådan fil finns.