Apprentissage automatique en Swift : bibliothèques pour iOS/macOS
Swift est un langage puissant et intuitif d'Apple, activement utilisé non seulement pour le développement d'applications iOS et macOS, mais aussi pour les tâches d'apprentissage automatique. Grâce à ses performances, à la sécurité des types et à l'intégration directe avec les frameworks Apple, Swift devient un excellent choix pour intégrer des modèles ML sur les appareils. Dans cet article, nous examinerons les bibliothèques et outils clés pour l'apprentissage automatique en Swift qui vous aideront à créer des applications intelligentes pour l'écosystème Apple.
1. Core ML — le framework phare d'Apple
Core ML est le framework principal d'Apple pour intégrer des modèles d'apprentissage automatique dans les applications. Il prend en charge un grand nombre de formats de modèles (MLModel, ONNX, TensorFlow, PyTorch) et est optimisé pour fonctionner sur les appareils (iPhone, iPad, Mac). Core ML utilise automatiquement le Neural Engine, le GPU et le CPU pour des performances maximales.
Exemple : Classification d'images avec Core ML
import CoreMLimport Vision
// Chargeons le modèle pré-entraîné MobileNetV2guard let model = try? VNCoreMLModel(for: MobileNetV2(configuration: MLModelConfiguration()).model) else { fatalError("Impossible de charger le modèle")}
// Créons une requêtelet request = VNCoreMLRequest(model: model) { request, error in guard let results = request.results as? [VNClassificationObservation], let topResult = results.first else { print("Impossible de classifier") return } print("Objet : \\(topResult.identifier) avec confiance \\(topResult.confidence)")}
// Chargeons l'imageguard let image = UIImage(named: "cat.jpg"), let ciImage = CIImage(image: image) else { return }
let handler = VNImageRequestHandler(ciImage: ciImage, options: [:])try? handler.perform([request])2. Create ML — apprentissage sans code (et avec code)
Create ML est un outil d'Apple pour entraîner des modèles d'apprentissage automatique directement dans Xcode. Il prend en charge les tâches de classification d'images, de texte, de données tabulaires, les systèmes de recommandation et même les classificateurs audio. Les modèles entraînés dans Create ML sont automatiquement exportés au format .mlmodel et prêts à être utilisés avec Core ML.
Exemple : Entraînement d'un modèle de classification de texte
import CreateML
// Chargeons les données depuis un CSVlet data = try MLDataTable(contentsOf: URL(fileURLWithPath: "/chemin/vers/donnees.csv"))
// Séparons en ensembles d'entraînement et de testlet (trainingData, testingData) = data.randomSplit(by: 0.8, seed: 42)
// Créons un classificateur de textelet classifier = try MLTextClassifier(trainingData: trainingData, textColumn: "text", labelColumn: "label")
// Évaluons la précisionlet evaluationMetrics = classifier.evaluation(on: testingData)print("Précision : \\(evaluationMetrics.classificationError)")
// Sauvegardons le modèlelet metadata = MLModelMetadata(author: "PythonLib", shortDescription: "Classificateur d'avis", version: "1.0")try classifier.write(to: URL(fileURLWithPath: "/chemin/vers/SentimentClassifier.mlmodel"), metadata: metadata)3. TensorFlow Lite (TFLite Swift) — TensorFlow mobile
TensorFlow Lite est une version allégée de TensorFlow pour les appareils mobiles et embarqués. L'interface Swift permet de charger et d'exécuter des modèles TFLite sur iOS et macOS. TFLite prend en charge l'accélération matérielle via Metal Performance Shaders (MPS) et les délégations Core ML.
Exemple : Exécution d'un modèle TFLite
import TensorFlowLite
// Chargeons le modèleguard let modelPath = Bundle.main.path(forResource: "mobilenet_v1_1.0_224", ofType: "tflite") else { fatalError("Modèle non trouvé")}
let interpreter = try Interpreter(modelPath: modelPath)try interpreter.allocateTensors()
// Préparons les données d'entrée (par exemple, une image 224x224)let inputData: Data = preprocessImag Aussi dans la bibliothèque
AVFoundation Swift : guide complet avec exemples
Génération de rapports PDF en Go : aperçu des bibliothèques et exemples de code
Files d'attente de tâches pour Rust : Aperçu des bibliothèques et outils populaires
Travailler avec CSV en C++ : bibliothèques, analyse et écriture de données