Maschinelles Lernen mit Swift: Bibliotheken für iOS/macOS

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Maschinelles Lernen mit Swift: Bibliotheken für iOS/macOS

Swift ist eine leistungsstarke und intuitive Sprache von Apple, die nicht nur für die Entwicklung von Apps für iOS und macOS, sondern auch für Aufgaben des maschinellen Lernens aktiv genutzt wird. Dank seiner Leistungsfähigkeit, Typsicherheit und direkten Integration mit Apple-Frameworks wird Swift zu einer ausgezeichneten Wahl für die Implementierung von ML-Modellen auf Geräten. In diesem Artikel betrachten wir die wichtigsten Bibliotheken und Werkzeuge für maschinelles Lernen mit Swift, die Ihnen helfen, intelligente Anwendungen für das Apple-Ökosystem zu erstellen.



1. Core ML — Apples Flaggschiff-Framework

Core ML ist das wichtigste Framework von Apple zur Integration von Modellen des maschinellen Lernens in Anwendungen. Es unterstützt eine Vielzahl von Modellformaten (MLModel, ONNX, TensorFlow, PyTorch) und ist für den Betrieb auf Geräten (iPhone, iPad, Mac) optimiert. Core ML nutzt automatisch den Neural Engine, die GPU und die CPU für maximale Leistung.

Beispiel: Bildklassifizierung mit Core ML

import CoreMLimport Vision

// Laden des vortrainierten Modells MobileNetV2guard let model = try? VNCoreMLModel(for: MobileNetV2(configuration: MLModelConfiguration()).model) else { fatalError("Modell konnte nicht geladen werden")}

// Erstellen einer Anfragelet request = VNCoreMLRequest(model: model) { request, error in guard let results = request.results as? [VNClassificationObservation], let topResult = results.first else { print("Klassifizierung fehlgeschlagen") return } print("Objekt: \\(topResult.identifier) mit Konfidenz \\(topResult.confidence)")}

// Laden des Bildesguard 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 — Training ohne Code (und mit Code)

Create ML ist ein Werkzeug von Apple zum Trainieren von Modellen des maschinellen Lernens direkt in Xcode. Es unterstützt Aufgaben wie Bildklassifizierung, Textklassifizierung, tabellarische Daten, Empfehlungssysteme und sogar Audio-Klassifikatoren. Mit Create ML trainierte Modelle werden automatisch in das Format .mlmodel exportiert und sind bereit für die Verwendung mit Core ML.

Beispiel: Training eines Textklassifikationsmodells

import CreateML

// Laden der Daten aus einer CSV-Dateilet data = try MLDataTable(contentsOf: URL(fileURLWithPath: "/pfad/zu/daten.csv"))

// Aufteilen in Trainings- und Testdatenlet (trainingData, testingData) = data.randomSplit(by: 0.8, seed: 42)

// Erstellen eines Textklassifikatorslet classifier = try MLTextClassifier(trainingData: trainingData, textColumn: "text", labelColumn: "label")

// Bewertung der Genauigkeitlet evaluationMetrics = classifier.evaluation(on: testingData)print("Genauigkeit: \\(evaluationMetrics.classificationError)")

// Speichern des Modellslet metadata = MLModelMetadata(author: "PythonLib", shortDescription: "Bewertungsklassifikator", version: "1.0")try classifier.write(to: URL(fileURLWithPath: "/pfad/zu/SentimentClassifier.mlmodel"), metadata: metadata)


3. TensorFlow Lite (TFLite Swift) — mobiles TensorFlow

TensorFlow Lite ist eine abgespeckte Version von TensorFlow für mobile und eingebettete Geräte. Das Swift-Interface ermöglicht das Laden und Ausführen von TFLite-Modellen auf iOS und macOS. TFLite unterstützt Hardwarebeschleunigung über Metal Performance Shaders (MPS) und Core ML-Delegaten.

Beispiel: Ausführen eines TFLite-Modells

import TensorFlowLite

// Laden des Modellsguard let modelPath = Bundle.main.path(forResource: "mobilenet_v1_1.0_224", ofType: "tflite") else { fatalError("Modell nicht gefunden")}

let interpreter = try Interpreter(modelPath: modelPath)try interpreter.allocateTensors()

// Vorbereiten der Eingabedaten (z.B. Bild 224x224)let inputData: Data = preprocessImag

Empfehlungen