Aller au contenu principal

Module CoreML (coreml)

Disponible à partir de la version logicielle 1.3.8
Le module CoreML permet d’effectuer des inférences de machine learning sur l’appareil. En plus de l’inférence visuelle Vision, il prend en charge :

  • les requêtes / sessions de modèles génériques
  • la création, la conversion et les opérations sur MLMultiArray
  • la conversion entre images et tenseurs
  • les tokenizers de texte avec distribution selon le type
  • les assistants génériques de post-traitement pour la détection, OBB, mask, keypoint, tracker, etc.

SentencePiece utilise une implémentation légère compatible destinée à l’inférence sur appareil et accepte les sources .vocab et .model. Après require("onnxruntime"), deux interfaces de conversion par copie native entre MLMultiArray et les tenseurs ORT sont également injectées.

Prise en charge des plateformes

Le module CoreML repose globalement sur iOS 11+, mais la version minimale du système varie selon l’interface :

  • new_model_request / session, interfaces liées à MLMultiArray, tensorisation d’images, tokenizer et la plupart des assistants géométriques / de post-traitement : iOS 11+
  • création de compile_model, new_vision_request, predict_batch() / run_batch() et interrogation ou création de compute_units : iOS 12+
  • transmission de image_object comme image feature dans une model request générique : iOS 13+
  • class_labels() : iOS 14+
  • compute_units = "cpu_and_neural_engine" : iOS 16+

Informations supplémentaires

  • coreml.session(...) est un alias de coreml.new_model_request(...)
  • coreml.tensor(...) est un alias de coreml.new_multi_array(...)
  • coreml.tensor_from_table(...) est un alias de coreml.multi_array_from_table(...)
  • coreml.image_to_multi_array(...) reste disponible, mais n’est désormais qu’un alias de compatibilité de coreml.tensor_from_image(...)
  • coreml.multi_array_from_quad(...) est un alias de coreml.tensor_from_quad(...)
  • coreml.multi_array_from_quads(...) est un alias de coreml.tensor_from_quads(...)
  • coreml.project_masks(...) est un alias de coreml.proto_masks(...)