Swift 机器学习:iOS/macOS 库

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

Swift 机器学习:iOS/macOS 库

Swift 是 Apple 推出的一种强大且直观的语言,不仅广泛用于 iOS 和 macOS 应用开发,也用于机器学习任务。凭借其高性能、类型安全以及与 Apple 框架的直接集成,Swift 成为在设备上部署 ML 模型的绝佳选择。在本文中,我们将介绍 Swift 机器学习的关键库和工具,帮助您为 Apple 生态系统创建智能应用。



1. Core ML — Apple 的旗舰框架

Core ML 是 Apple 用于将机器学习模型集成到应用中的主要框架。它支持多种模型格式(MLModel、ONNX、TensorFlow、PyTorch),并针对在设备(iPhone、iPad、Mac)上运行进行了优化。Core ML 会自动利用 Neural Engine、GPU 和 CPU 以实现最佳性能。

示例:使用 Core ML 进行图像分类

import CoreMLimport Vision

// 加载预训练模型 MobileNetV2guard let model = try? VNCoreMLModel(for: MobileNetV2(configuration: MLModelConfiguration()).model) else { fatalError("无法加载模型")}

// 创建请求let request = VNCoreMLRequest(model: model) { request, error in guard let results = request.results as? [VNClassificationObservation], let topResult = results.first else { print("无法分类") return } print("物体: \\(topResult.identifier) 置信度: \\(topResult.confidence)")}

// 加载图像guard 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 — 无代码(以及有代码)训练

Create ML 是 Apple 提供的一款工具,可直接在 Xcode 中训练机器学习模型。它支持图像分类、文本分类、表格数据、推荐系统甚至音频分类器等任务。在 Create ML 中训练的模型会自动导出为 .mlmodel 格式,并可直接与 Core ML 一起使用。

示例:训练文本分类模型

import CreateML

// 从 CSV 加载数据let data = try MLDataTable(contentsOf: URL(fileURLWithPath: "/path/to/data.csv"))

// 分割为训练集和测试集let (trainingData, testingData) = data.randomSplit(by: 0.8, seed: 42)

// 创建文本分类器let classifier = try MLTextClassifier(trainingData: trainingData, textColumn: "text", labelColumn: "label")

// 评估准确率let evaluationMetrics = classifier.evaluation(on: testingData)print("准确率: \\(evaluationMetrics.classificationError)")

// 保存模型let metadata = MLModelMetadata(author: "PythonLib", shortDescription: "评论分类器", version: "1.0")try classifier.write(to: URL(fileURLWithPath: "/path/to/SentimentClassifier.mlmodel"), metadata: metadata)


3. TensorFlow Lite (TFLite Swift) — 移动端 TensorFlow

TensorFlow Lite 是 TensorFlow 的轻量级版本,专为移动和嵌入式设备设计。Swift 接口允许您在 iOS 和 macOS 上加载并执行 TFLite 模型。TFLite 通过 Metal Performance Shaders (MPS) 和 Core ML 委托支持硬件加速。

示例:运行 TFLite 模型

import TensorFlowLite

// 加载模型guard let modelPath = Bundle.main.path(forResource: "mobilenet_v1_1.0_224", ofType: "tflite") else { fatalError("未找到模型")}

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

// 准备输入数据(例如,224x224 图像)let inputData: Data = preprocessImag

推荐