ml — Învățare automată

Modulul ml conține funcționalități pentru încărcarea și rularea modelelor TensorFlow Lite pe OpenMV Cam. Modulul expune o singură clasă destinată utilizatorului, ml.Model, care încapsulează clasa C Model subiacentă cu facilități suplimentare pe partea Python (încărcarea automată a etichetelor și conversia automată din imagine în tensor).

Submodule

class Model – Container de model

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

Încarcă în memorie un model TensorFlow Lite din path și îl pregătește pentru inferență. path poate fi un fișier din sistemul de fișiere sau numele unui model integrat în imaginea de firmware.

postprocess este o funcție opțională de post-procesare apelată de Model.predict după inferență. Aceasta primește (model, inputs, outputs) și poate returna orice valoare (de exemplu, o listă de casete de încadrare). Când este furnizată, post-procesorul primește tensorii bruți de ieșire ai modelului (nedequantizați) pentru performanță.

La construcție, învelișul încearcă suplimentar să încarce un fișier .txt cu același nume de bază ca path; dacă este găsit, fiecare linie este încărcată în Model.labels. În caz contrar, Model.labels este None.

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

Rulează inferența pe model și returnează tensorii de ieșire.

inputs este o listă cu o intrare pentru fiecare tensor de intrare al modelului. Fiecare intrare poate fi:

  • Un ndarray a cărui formă corespunde intrării respective din Model.input_shape. Valorile sunt quantizate folosind scala și punctul zero ale tensorului de intrare (intrările float32 sunt transmise nemodificate).

  • Un obiect image.Image. Învelișul îl încapsulează automat într-un obiect ml.preprocessing.Normalization pentru a-l converti în tensorul așteptat.

  • O funcție apelabilă. Va fi apelată cu (bytearray, shape, dtype) și se așteaptă să umple bytearray-ul cu datele tensorului de intrare.

callback este o funcție opțională de post-procesare per apel. Când este furnizată, suprascrie postprocess setat la constructor doar pentru acest apel. Funcția de retroapelare primește (model, inputs, outputs) și valoarea sa de retur este returnată de predict.

Returnează o listă de ieșiri ndarray, câte una pentru fiecare tensor de ieșire al modelului. Dacă niciun post-procesor nu este activ, ieșirile sunt dequantizate la float32; dacă un post-procesor este activ, tensorii bruți de ieșire (folosind tipul de date nativ al fiecărui tensor) îi sunt transmiși în schimb.

len: int

Dimensiunea modelului încărcat, în octeți.

ram: int

Cantitatea de RAM utilizată de arena de tensori a modelului, în octeți.

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

O listă de tupluri care indică forma fiecărui tensor de intrare.

input_dtype: list[str]

O listă de șiruri de un singur caracter care indică tipul de date al fiecărui tensor de intrare: 'b' (int8), 'B' (uint8), 'h' (int16), 'H' (uint16), 'f' (float32).

input_scale: list[float]

O listă de numere în virgulă mobilă care indică scala de quantizare a fiecărui tensor de intrare.

input_zero_point: list[int]

O listă de numere întregi care indică punctul zero de quantizare al fiecărui tensor de intrare.

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

O listă de tupluri care indică forma fiecărui tensor de ieșire.

output_dtype: list[str]

O listă de șiruri de un singur caracter care indică tipul de date al fiecărui tensor de ieșire: 'b' (int8), 'B' (uint8), 'h' (int16), 'H' (uint16), 'f' (float32).

output_scale: list[float]

O listă de numere în virgulă mobilă care indică scala de quantizare a fiecărui tensor de ieșire.

output_zero_point: list[int]

O listă de numere întregi care indică punctul zero de quantizare al fiecărui tensor de ieșire.

postprocess: object

Funcția de post-procesare furnizată constructorului, sau None.

labels: list[str]

Lista de șiruri de etichete încărcate din fișierul .txt aflat lângă model, sau None dacă nu există un astfel de fișier.