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.labelsはNoneになります。- 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 を使用)が代わりに後処理関数へ渡されます。
- input_dtype: list[str]¶
各入力テンソルの dtype を示す 1 文字の文字列のリスト:
'b'(int8)、'B'(uint8)、'h'(int16)、'H'(uint16)、'f'(float32)。