ml --- 機械学習

ml モジュールは、OpenMV Cam 上で TensorFlow Lite モデルを読み込んで実行するための機能を提供します。このモジュールはユーザー向けに単一のクラス 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) を受け取り、任意の値(例: バウンディングボックスのリスト)を返すことができます。指定された場合、後処理関数は性能のために生のモデル出力テンソル(逆量子化されていないもの)を受け取ります。

コンストラクション時に、ラッパーは path と同じベース名を持つ .txt ファイルの読み込みも試みます。見つかった場合は各行が Model.labels に読み込まれます。そうでない場合、Model.labelsNone になります。

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

モデルで推論を実行し、出力テンソルを返します。

inputs は、モデルの各入力テンソルにつき 1 つのエントリを持つリストです。各エントリは次のいずれかです:

  • 形状が Model.input_shape の対応するエントリと一致する ndarray。値は入力テンソルのスケールとゼロ点を使って量子化されます(float32 の入力はそのまま渡されます)。

  • image.Image オブジェクト。ラッパーはこれを自動的に ml.preprocessing.Normalization オブジェクトでラップし、期待されるテンソルに変換します。

  • 呼び出し可能オブジェクト。(bytearray, shape, dtype) を引数に呼び出され、bytearray に入力テンソルのデータを書き込むことが期待されます。

callback は、呼び出しごとのオプションの後処理用呼び出し可能オブジェクトです。指定された場合、この呼び出しに限ってコンストラクタで設定された postprocess を上書きします。コールバックは (model, inputs, outputs) を受け取り、その戻り値が predict の戻り値になります。

モデルの各出力テンソルにつき 1 つの ndarray 出力からなるリストを返します。後処理関数が有効でない場合、出力は float32 に逆量子化されます。後処理関数が有効な場合、生の出力テンソル(各テンソル固有の dtype を使用)が代わりに後処理関数へ渡されます。

len: int

読み込まれたモデルのサイズ(バイト単位)。

ram: int

モデルのテンソルアリーナが使用する RAM の量(バイト単位)。

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

各入力テンソルの形状を示すタプルのリスト。

input_dtype: list[str]

各入力テンソルの dtype を示す 1 文字の文字列のリスト: '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 を示す 1 文字の文字列のリスト: '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