ml — Apprentissage automatique¶
Le module ml contient des fonctionnalités pour charger et exécuter des modèles TensorFlow Lite sur l’OpenMV Cam. Le module expose une seule classe destinée à l’utilisateur, ml.Model, qui encapsule la classe C sous-jacente Model en y ajoutant des commodités côté Python (chargement automatique des étiquettes et conversion automatique image-vers-tenseur).
Sous-modules¶
class Model – Conteneur de modèle¶
- class ml.Model(path: str, *, postprocess: object = None) Model¶
Charge un modèle TensorFlow Lite depuis
pathen mémoire et le prépare pour l’inférence.pathpeut être un fichier sur le système de fichiers ou le nom d’un modèle intégré à l’image du micrologiciel.postprocess est une fonction de post-traitement optionnelle appelée par
Model.predictaprès l’inférence. Elle reçoit(model, inputs, outputs)et peut renvoyer n’importe quelle valeur (par exemple une liste de boîtes englobantes). Lorsqu’elle est fournie, le post-traitement reçoit les tenseurs de sortie bruts du modèle (non déquantifiés) pour des raisons de performance.À la construction, l’enveloppe tente également de charger un fichier
.txtportant le même nom de base quepath; s’il est trouvé, chaque ligne est chargée dansModel.labels. Sinon,Model.labelsvautNone.- predict(inputs: list, *, callback: object = None) list¶
Exécute l’inférence sur le modèle et renvoie les tenseurs de sortie.
inputs est une liste comportant une entrée par tenseur d’entrée du modèle. Chaque entrée peut être :
Un
ndarraydont la forme correspond à l’entrée correspondante dansModel.input_shape. Les valeurs sont quantifiées à l’aide de l’échelle et du point zéro du tenseur d’entrée (les entrées float32 sont transmises telles quelles).Un objet
image.Image. L’enveloppe l’encapsule automatiquement dans un objetml.preprocessing.Normalizationpour le convertir en tenseur attendu.Un appelable. Il sera invoqué avec
(bytearray, shape, dtype)et est censé remplir le bytearray avec les données du tenseur d’entrée.
callback est une fonction de post-traitement optionnelle propre à l’appel. Lorsqu’elle est fournie, elle remplace la fonction
postprocessdéfinie dans le constructeur, pour cet appel uniquement. Le callback reçoit(model, inputs, outputs)et sa valeur de retour est renvoyée parpredict.Renvoie une liste de sorties
ndarray, une par tenseur de sortie du modèle. Si aucun post-traitement n’est actif, les sorties sont déquantifiées enfloat32; si un post-traitement est actif, ce sont les tenseurs de sortie bruts (utilisant le dtype natif de chaque tenseur) qui lui sont transmis à la place.
- input_shape: list[tuple[int, ...]]¶
Une liste de tuples donnant la forme de chaque tenseur d’entrée.
- input_dtype: list[str]¶
Une liste de chaînes d’un seul caractère donnant le dtype de chaque tenseur d’entrée :
'b'(int8),'B'(uint8),'h'(int16),'H'(uint16),'f'(float32).
- input_scale: list[float]¶
Une liste de flottants donnant l’échelle de quantification de chaque tenseur d’entrée.
- input_zero_point: list[int]¶
Une liste d’entiers donnant le point zéro de quantification de chaque tenseur d’entrée.
- output_shape: list[tuple[int, ...]]¶
Une liste de tuples donnant la forme de chaque tenseur de sortie.
- output_dtype: list[str]¶
Une liste de chaînes d’un seul caractère donnant le dtype de chaque tenseur de sortie :
'b'(int8),'B'(uint8),'h'(int16),'H'(uint16),'f'(float32).
- output_scale: list[float]¶
Une liste de flottants donnant l’échelle de quantification de chaque tenseur de sortie.