ml — Gépi tanulás

A ml modul a TensorFlow Lite modellek betöltéséhez és futtatásához nyújt funkcionalitást az OpenMV Cam eszközön. A modul egyetlen, a felhasználó számára elérhető osztályt tesz közzé, a ml.Model osztályt, amely az alapjául szolgáló C nyelvű Model osztályt csomagolja be további Python-oldali kényelmi funkciókkal (automatikus címkebetöltés és automatikus kép-tenzor konverzió).

Almodulok

class Model – Modell tároló

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

Betölt egy TensorFlow Lite modellt a path útvonalról a memóriába, és előkészíti a következtetéshez. A path lehet egy fájl a fájlrendszeren vagy egy, a firmware-képbe beépített modell neve.

A postprocess egy opcionális utófeldolgozó hívható objektum, amelyet a Model.predict hív meg a következtetés után. Megkapja a (model, inputs, outputs) értékeket, és bármilyen értéket visszaadhat (pl. határoló dobozok listáját). Ha meg van adva, az utófeldolgozó a teljesítmény érdekében a modell nyers (nem visszakvantált) kimeneti tenzorait kapja meg.

A létrehozáskor a csomagoló ezenfelül megkísérli betölteni a path útvonallal megegyező alapnevű .txt fájlt; ha megtalálja, minden sort betölt a Model.labels mezőbe. Ellenkező esetben a Model.labels értéke None.

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

Lefuttatja a következtetést a modellen, és visszaadja a kimeneti tenzorokat.

Az inputs egy lista, amely a modell minden bemeneti tenzorához egy-egy bejegyzést tartalmaz. Minden bejegyzés lehet:

  • Egy ndarray, amelynek alakja megegyezik a Model.input_shape megfelelő bejegyzésével. Az értékek a bemeneti tenzor skálájával és nullpontjával kerülnek kvantálásra (a float32 bemenetek változatlanul kerülnek átadásra).

  • Egy image.Image objektum. A csomagoló automatikusan becsomagolja egy ml.preprocessing.Normalization objektumba, hogy átalakítsa az elvárt tenzorrá.

  • Egy hívható objektum. Ez (bytearray, shape, dtype) paraméterekkel kerül meghívásra, és a feladata, hogy feltöltse a bytearray-t a bemeneti tenzor adataival.

A callback egy opcionális, hívásonkénti utófeldolgozó hívható objektum. Ha meg van adva, csak az adott hívásra felülírja a konstruktorban beállított postprocess értéket. A visszahívás megkapja a (model, inputs, outputs) értékeket, és a visszatérési értékét adja vissza a predict.

Visszaad egy ndarray kimenetekből álló listát, modell-kimeneti tenzoronként egyet. Ha nincs aktív utófeldolgozó, a kimenetek float32 típusra kerülnek visszakvantálásra; ha van aktív utófeldolgozó, helyette a nyers kimeneti tenzorok (az egyes tenzorok natív dtype-jával) kerülnek átadásra annak.

len: int

A betöltött modell mérete bájtban.

ram: int

A modell tenzorarénája által használt RAM mennyisége bájtban.

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

Egy tuple-ökből álló lista, amely megadja az egyes bemeneti tenzorok alakját.

input_dtype: list[str]

Egyetlen karakteres karakterláncok listája, amely megadja az egyes bemeneti tenzorok dtype-ját: 'b' (int8), 'B' (uint8), 'h' (int16), 'H' (uint16), 'f' (float32).

input_scale: list[float]

Egy float-okból álló lista, amely megadja az egyes bemeneti tenzorok kvantálási skáláját.

input_zero_point: list[int]

Egy int-ekből álló lista, amely megadja az egyes bemeneti tenzorok kvantálási nullpontját.

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

Egy tuple-ökből álló lista, amely megadja az egyes kimeneti tenzorok alakját.

output_dtype: list[str]

Egyetlen karakteres karakterláncok listája, amely megadja az egyes kimeneti tenzorok dtype-ját: 'b' (int8), 'B' (uint8), 'h' (int16), 'H' (uint16), 'f' (float32).

output_scale: list[float]

Egy float-okból álló lista, amely megadja az egyes kimeneti tenzorok kvantálási skáláját.

output_zero_point: list[int]

Egy int-ekből álló lista, amely megadja az egyes kimeneti tenzorok kvantálási nullpontját.

postprocess: object

A konstruktornak átadott utófeldolgozó hívható objektum, vagy None.

labels: list[str]

A modell mellett található .txt fájlból betöltött címke-karakterláncok listája, vagy None, ha nincs ilyen fájl.