Apprentissage automatique en Swift : Core ML, Create ML, TensorFlow Swift et Turi Create

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Apprentissage automatique en Swift : bibliothèques pour iOS/macOS

Swift est un langage puissant et moderne d'Apple, de plus en plus utilisé non seulement pour le développement classique d'applications, mais aussi pour les tâches d'apprentissage automatique. Grâce à une intégration étroite avec l'écosystème Apple, Swift permet d'exécuter des modèles ML directement sur l'appareil (iOS, macOS, watchOS, tvOS) sans envoyer de données vers un serveur. Dans cet article, nous allons examiner quatre outils clés : Core ML, Create ML, Swift for TensorFlow et Turi Create. Vous découvrirez comment ils fonctionnent, leurs points forts et comment commencer à les utiliser.



1. Core ML — la base pour l'intégration de modèles

Core ML est un framework d'Apple qui permet d'intégrer des modèles d'apprentissage automatique entraînés dans des applications Swift. Il prend en charge les modèles provenant de TensorFlow, PyTorch, Keras, scikit-learn et d'autres bibliothèques populaires (via la conversion au format .mlmodel).

Le principal avantage de Core ML est la performance : les modèles s'exécutent sur l'appareil, en utilisant le CPU, le GPU ou le Neural Engine (sur les appareils équipés d'une puce A12+). Cela garantit une faible latence et la confidentialité des données.

Exemple d'utilisation de Core ML en Swift :

import CoreMLimport Vision

// Chargement du modèle (par exemple, MobileNetV2)guard let model = try? VNCoreMLModel(for: MobileNetV2().model) else { fatalError("Impossible de charger le modèle")}

// Création de la requêtelet request = VNCoreMLRequest(model: model) { request, error in guard let results = request.results as? [VNClassificationObservation], let topResult = results.first else { return } print("Reconnu : \\(topResult.identifier) avec probabilité \\(topResult.confidence)")}

// Exécution de la requête sur une imagelet image = UIImage(named: "cat.jpg")!let handler = VNImageRequestHandler(cgImage: image.cgImage!, options: [:])try? handler.perform([request])


2. Create ML — entraînement de modèles sans code (presque)

Create ML est un outil d'Apple pour entraîner des modèles d'apprentissage automatique avec un minimum d'écriture de code. Il fonctionne sur macOS (via Swift Playgrounds ou Xcode) et prend en charge les tâches suivantes : classification d'images, de texte, données tabulaires, systèmes de recommandation et bien plus encore.

Vous pouvez entraîner un modèle en lui fournissant simplement un dossier contenant des données étiquetées. Après l'entraînement, le modèle est automatiquement converti au format Core ML et prêt à être utilisé.

Exemple d'entraînement d'un classifieur d'images en Swift :

import CreateMLimport Foundation

// Chemin vers le dossier contenant les données d'entraînement (structure : /train/class1/, /train/class2/)let trainingData = try MLImageClassifier.DataSource.labeledDirectories(at: URL(fileURLWithPath: "/path/to/train"))

// Création et entraînement du modèlelet classifier = try MLImageClassifier(trainingData: trainingData)

// Évaluation de la précision sur les données de testlet evaluationMetrics = classifier.evaluation(on: trainingData)print("Précision : \\(evaluationMetrics.classificationError)")

// Sauvegarde du modèle au format .mlmodeltry classifier.write(to: URL(fileURLWithPath: "/path/to/MyImageClassifier.mlmodel"))


3. Swift for TensorFlow (S4TF) — expériences scientifiques

Swift for TensorFlow est un projet expérimental de Google qui apporte les capacités de TensorFlow dans le monde Swift. Il permet d'écrire des calculs différentiables et d'entraîner des réseaux de neurones en Swift, en utilisant toute la puissance de la différenciation automatique.

Bien que le projet soit officiellement gelé, ses idées perdurent dans la communauté et le code peut être utilisé pour la recherche et le prototypage. S4TF est particulièrement utile si vous souhaitez créer des couches personnalisées, des fonctions de perte ou expérimenter avec des architectures.

Exemple d'un réseau de neurones simple avec Swift for TensorFlow :

import TensorFlow

// Définition du modèle : réseau entièrement connecté avec une

Recommendations