ml — Машинне навчання

Модуль ml містить функціональність для завантаження та запуску моделей TensorFlow Lite на OpenMV Cam. Модуль надає єдиний клас для користувача, ml.Model, який обгортає внутрішній клас C Model з додатковими зручностями на стороні Python (автоматичне завантаження міток та автоматичне перетворення зображень у тензори).

Підмодулі

class Model – Контейнер моделі

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

Завантажує модель TensorFlow Lite з path у пам’ять та готує її до інференсу. path може бути файлом у файловій системі або назвою моделі, вбудованої у образ мікропрограми.

postprocess — необов’язковий об’єкт постобробки, що викликається методом Model.predict після інференсу. Він отримує (model, inputs, outputs) і може повертати будь-яке значення (наприклад, список обмежувальних прямокутників). Якщо вказано, постпроцесор отримує вихідні тензори моделі у необробленому вигляді (без деквантизації) для підвищення продуктивності.

Під час створення обгортка також намагається завантажити файл .txt з тим самим базовим іменем, що й path; якщо такий файл знайдено, кожен рядок завантажується у Model.labels. В іншому разі Model.labels має значення None.

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

Виконує інференс на моделі та повертає вихідні тензори.

inputs — список з одним елементом на кожний вхідний тензор моделі. Кожен елемент може бути:

  • Масивом ndarray, форма якого відповідає відповідному елементу у Model.input_shape. Значення квантуються з використанням масштабу та нульової точки вхідного тензора (вхідні тензори float32 передаються без змін).

  • Об’єктом image.Image. Обгортка автоматично загортає його у об’єкт ml.preprocessing.Normalization для перетворення у очікуваний тензор.

  • Об’єктом, що можна викликати. Він буде викликаний з (bytearray, shape, dtype) і повинен заповнити bytearray даними вхідного тензора.

callback — необов’язковий об’єкт постобробки для конкретного виклику. Якщо вказано, він перевизначає postprocess, встановлений у конструкторі, лише для цього виклику. Зворотний виклик отримує (model, inputs, outputs), а його повернуте значення повертається методом predict.

Повертає список вихідних даних ndarray, по одному на кожний вихідний тензор моделі. Якщо жоден постпроцесор не активний, виходи деквантизуються до float32; якщо постпроцесор активний, необроблені вихідні тензори (з рідним типом dtype кожного тензора) передаються до нього.

len: int

Розмір завантаженої моделі у байтах.

ram: int

Обсяг оперативної пам’яті, що використовується тензорною аренаю моделі, у байтах.

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

Список кортежів з формою кожного вхідного тензора.

input_dtype: list[str]

Список рядків з одного символу, що вказують тип dtype кожного вхідного тензора: 'b' (int8), 'B' (uint8), 'h' (int16), 'H' (uint16), 'f' (float32).

input_scale: list[float]

Список чисел з рухомою комою, що вказують масштаб квантизації кожного вхідного тензора.

input_zero_point: list[int]

Список цілих чисел, що вказують нульову точку квантизації кожного вхідного тензора.

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

Список кортежів з формою кожного вихідного тензора.

output_dtype: list[str]

Список рядків з одного символу, що вказують тип dtype кожного вихідного тензора: 'b' (int8), 'B' (uint8), 'h' (int16), 'H' (uint16), 'f' (float32).

output_scale: list[float]

Список чисел з рухомою комою, що вказують масштаб квантизації кожного вихідного тензора.

output_zero_point: list[int]

Список цілих чисел, що вказують нульову точку квантизації кожного вихідного тензора.

postprocess: object

Об’єкт постобробки, переданий конструктору, або None.

labels: list[str]

Список рядків-міток, завантажених з файлу .txt поруч із моделлю, або None, якщо такого файлу не існує.