ml — Strojno učenje

Modul ml sadrži funkcionalnost za učitavanje i pokretanje TensorFlow Lite modela na OpenMV Cam. Modul izlaže jednu klasu namijenjenu korisniku, ml.Model, koja omata temeljnu C klasu Model dodatnim pogodnostima na strani Pythona (automatsko učitavanje oznaka i automatska pretvorba slike u tenzor).

Podmoduli

klasa Model – Spremnik modela

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

Učitava TensorFlow Lite model iz path u memoriju i priprema ga za zaključivanje. path može biti datoteka na datotečnom sustavu ili naziv modela ugrađenog u sliku ugrađenog programa (firmware).

postprocess je opcionalni pozivljivi objekt za naknadnu obradu koji poziva Model.predict nakon zaključivanja. Prima (model, inputs, outputs) i može vratiti bilo koju vrijednost (npr. popis graničnih okvira). Kada je naveden, naknadni obrađivač zbog performansi prima sirove izlazne tenzore modela (bez dekvantizacije).

Pri stvaranju, omotač dodatno pokušava učitati .txt datoteku istog osnovnog naziva kao path; ako je pronađena, svaki se redak učitava u Model.labels. U suprotnom je Model.labels jednak None.

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

Pokreće zaključivanje na modelu i vraća izlazne tenzore.

inputs je popis s jednim unosom po ulaznom tenzoru modela. Svaki unos može biti:

  • Objekt ndarray čiji oblik odgovara odgovarajućem unosu u Model.input_shape. Vrijednosti se kvantiziraju pomoću skale i nulte točke ulaznog tenzora (float32 ulazi prosljeđuju se nepromijenjeni).

  • Objekt image.Image. Omotač ga automatski omata u objekt ml.preprocessing.Normalization kako bi ga pretvorio u očekivani tenzor.

  • Pozivljivi objekt. Bit će pozvan s (bytearray, shape, dtype) i očekuje se da popuni bytearray podacima ulaznog tenzora.

callback je opcionalni pozivljivi objekt za naknadnu obradu po pozivu. Kada je naveden, nadjačava postprocess postavljen u konstruktoru samo za taj poziv. Povratni poziv prima (model, inputs, outputs) i predict vraća njegovu povratnu vrijednost.

Vraća popis ndarray izlaza, jedan po izlaznom tenzoru modela. Ako nije aktivan nijedan naknadni obrađivač, izlazi se dekvantiziraju u float32; ako je naknadni obrađivač aktivan, umjesto toga mu se prosljeđuju sirovi izlazni tenzori (koristeći nativni dtype svakog tenzora).

len: int

Veličina učitanog modela u bajtovima.

ram: int

Količina RAM-a koju koristi tenzorska arena modela, u bajtovima.

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

Popis n-torki koje daju oblik svakog ulaznog tenzora.

input_dtype: list[str]

Popis jednoznakovnih nizova koji daju dtype svakog ulaznog tenzora: 'b' (int8), 'B' (uint8), 'h' (int16), 'H' (uint16), 'f' (float32).

input_scale: list[float]

Popis float vrijednosti koje daju kvantizacijsku skalu svakog ulaznog tenzora.

input_zero_point: list[int]

Popis cijelih brojeva koji daju kvantizacijsku nultu točku svakog ulaznog tenzora.

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

Popis n-torki koje daju oblik svakog izlaznog tenzora.

output_dtype: list[str]

Popis jednoznakovnih nizova koji daju dtype svakog izlaznog tenzora: 'b' (int8), 'B' (uint8), 'h' (int16), 'H' (uint16), 'f' (float32).

output_scale: list[float]

Popis float vrijednosti koje daju kvantizacijsku skalu svakog izlaznog tenzora.

output_zero_point: list[int]

Popis cijelih brojeva koji daju kvantizacijsku nultu točku svakog izlaznog tenzora.

postprocess: object

Pozivljivi objekt za naknadnu obradu koji je predan konstruktoru, ili None.

labels: list[str]

Popis nizova oznaka učitanih iz .txt datoteke uz model, ili None ako takva datoteka ne postoji.