ml --- Machine Learning

Module ml chứa các chức năng để tải và chạy các mô hình TensorFlow Lite trên OpenMV Cam. Module này cung cấp một lớp duy nhất cho người dùng là ml.Model, bao bọc lớp C Model bên dưới với các tiện ích bổ sung ở phía Python (tự động tải nhãn và tự động chuyển đổi ảnh thành tensor).

Các Module Con

class Model -- Vùng chứa Mô hình

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

Tải một mô hình TensorFlow Lite từ path vào bộ nhớ và chuẩn bị cho quá trình suy luận. path có thể là một tệp trên hệ thống tệp hoặc tên của một mô hình được tích hợp sẵn trong firmware.

postprocess là một callable xử lý hậu kỳ tùy chọn được gọi bởi Model.predict sau khi suy luận. Nó nhận (model, inputs, outputs) và có thể trả về bất kỳ giá trị nào (ví dụ: danh sách các hộp giới hạn). Khi được cung cấp, bộ xử lý hậu kỳ nhận các tensor đầu ra thô của mô hình (chưa được dequantize) để tối ưu hiệu suất.

Khi khởi tạo, wrapper còn thử tải một tệp .txt có cùng tên cơ sở với path; nếu tìm thấy, mỗi dòng sẽ được tải vào Model.labels. Nếu không, Model.labels sẽ là None.

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

Chạy suy luận trên mô hình và trả về các tensor đầu ra.

inputs là một danh sách với một mục cho mỗi tensor đầu vào của mô hình. Mỗi mục có thể là:

  • Một ndarray có shape khớp với mục tương ứng trong Model.input_shape. Các giá trị được lượng tử hóa bằng cách sử dụng scale và zero point của tensor đầu vào (các đầu vào float32 được truyền qua không thay đổi).

  • Một đối tượng image.Image. Wrapper tự động bao bọc nó trong một đối tượng ml.preprocessing.Normalization để chuyển đổi nó sang tensor mong đợi.

  • Một callable. Nó sẽ được gọi với (bytearray, shape, dtype) và được kỳ vọng sẽ điền vào bytearray với dữ liệu tensor đầu vào.

callback là một callable xử lý hậu kỳ tùy chọn cho mỗi lần gọi. Khi được cung cấp, nó sẽ ghi đè postprocess được đặt trong constructor chỉ cho lần gọi này. Callback nhận (model, inputs, outputs) và giá trị trả về của nó được trả về bởi predict.

Trả về một danh sách các đầu ra ndarray, một mục cho mỗi tensor đầu ra của mô hình. Nếu không có bộ xử lý hậu kỳ nào đang hoạt động, các đầu ra sẽ được dequantize sang float32; nếu có bộ xử lý hậu kỳ đang hoạt động, các tensor đầu ra thô (sử dụng dtype gốc của mỗi tensor) sẽ được truyền vào thay thế.

len: int

Kích thước của mô hình đã tải, tính bằng byte.

ram: int

Lượng RAM được sử dụng bởi tensor arena của mô hình, tính bằng byte.

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

Danh sách các tuple cho biết shape của mỗi tensor đầu vào.

input_dtype: list[str]

Danh sách các chuỗi ký tự đơn cho biết dtype của mỗi tensor đầu vào: 'b' (int8), 'B' (uint8), 'h' (int16), 'H' (uint16), 'f' (float32).

input_scale: list[float]

Danh sách các số thực cho biết quantization scale của mỗi tensor đầu vào.

input_zero_point: list[int]

Danh sách các số nguyên cho biết quantization zero point của mỗi tensor đầu vào.

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

Danh sách các tuple cho biết shape của mỗi tensor đầu ra.

output_dtype: list[str]

Danh sách các chuỗi ký tự đơn cho biết dtype của mỗi tensor đầu ra: 'b' (int8), 'B' (uint8), 'h' (int16), 'H' (uint16), 'f' (float32).

output_scale: list[float]

Danh sách các số thực cho biết quantization scale của mỗi tensor đầu ra.

output_zero_point: list[int]

Danh sách các số nguyên cho biết quantization zero point của mỗi tensor đầu ra.

postprocess: object

Callable xử lý hậu kỳ được cung cấp cho constructor, hoặc None.

labels: list[str]

Danh sách các chuỗi nhãn được tải từ tệp .txt bên cạnh mô hình, hoặc None nếu không có tệp như vậy.