ml — Strojové učení¶
Modul ml obsahuje funkce pro načítání a spouštění modelů TensorFlow Lite na OpenMV Cam. Modul vystavuje jedinou uživatelsky orientovanou třídu ml.Model, která obaluje podkladovou C třídu Model o další vymoženosti na straně Pythonu (automatické načítání štítků a automatický převod obrazu na tenzor).
Podmoduly¶
class Model – Kontejner modelu¶
- class ml.Model(path: str, *, postprocess: object = None) Model¶
Načte model TensorFlow Lite z cesty
pathdo paměti a připraví jej pro inferenci.pathmůže být soubor v souborovém systému nebo název modelu zabudovaného v obrazu firmwaru.postprocess je volitelný objekt pro následné zpracování, který
Model.predictvyvolá po inferenci. Přijímá(model, inputs, outputs)a může vrátit libovolnou hodnotu (např. seznam ohraničujících rámečků). Je-li zadán, dostává následný procesor z důvodu výkonu surové výstupní tenzory modelu (bez dekvantizace).Při konstrukci se obal navíc pokusí načíst soubor
.txtse stejným základem názvu jakopath; pokud je nalezen, každý řádek se načte doModel.labels. Jinak jeModel.labelsrovnoNone.- predict(inputs: list, *, callback: object = None) list¶
Spustí inferenci modelu a vrátí výstupní tenzory.
inputs je seznam s jednou položkou na každý vstupní tenzor modelu. Každá položka může být:
Objekt
ndarray, jehož tvar odpovídá příslušné položce vModel.input_shape. Hodnoty se kvantují pomocí měřítka (scale) a nulového bodu (zero point) vstupního tenzoru (vstupy typu float32 procházejí beze změny).Objekt
image.Image. Obal jej automaticky zabalí do objektuml.preprocessing.Normalization, aby jej převedl na očekávaný tenzor.Volatelný objekt. Bude vyvolán s
(bytearray, shape, dtype)a očekává se, že naplní bytearray daty vstupního tenzoru.
callback je volitelný objekt pro následné zpracování platný pro jedno volání. Je-li zadán, přepíše
postprocessnastavený v konstruktoru pouze pro toto volání. Callback přijímá(model, inputs, outputs)a jeho návratová hodnota je vrácena funkcípredict.Vrací seznam výstupů
ndarray, jeden na každý výstupní tenzor modelu. Pokud není aktivní žádný následný procesor, jsou výstupy dekvantizovány nafloat32; pokud je následný procesor aktivní, jsou mu místo toho předány surové výstupní tenzory (s použitím nativního dtype každého tenzoru).
- input_dtype: list[str]¶
Seznam jednoznakových řetězců udávajících dtype každého vstupního tenzoru:
'b'(int8),'B'(uint8),'h'(int16),'H'(uint16),'f'(float32).
- input_scale: list[float]¶
Seznam hodnot float udávajících kvantizační měřítko (scale) každého vstupního tenzoru.
- input_zero_point: list[int]¶
Seznam celých čísel udávajících kvantizační nulový bod (zero point) každého vstupního tenzoru.
- output_dtype: list[str]¶
Seznam jednoznakových řetězců udávajících dtype každého výstupního tenzoru:
'b'(int8),'B'(uint8),'h'(int16),'H'(uint16),'f'(float32).
- output_scale: list[float]¶
Seznam hodnot float udávajících kvantizační měřítko (scale) každého výstupního tenzoru.