Aprendizado de Máquina em Swift: bibliotecas para iOS/macOS
Swift é uma linguagem poderosa e moderna da Apple, que está sendo cada vez mais usada não apenas para o desenvolvimento clássico de aplicativos, mas também para tarefas de aprendizado de máquina. Graças à integração estreita com o ecossistema Apple, o Swift permite executar modelos de ML diretamente no dispositivo (iOS, macOS, watchOS, tvOS) sem enviar dados para o servidor. Neste artigo, vamos explorar quatro ferramentas principais: Core ML, Create ML, Swift for TensorFlow e Turi Create. Você aprenderá como elas funcionam, quais são seus pontos fortes e como começar a usá-las.
1. Core ML — a base para integração de modelos
Core ML é um framework da Apple que permite incorporar modelos de aprendizado de máquina treinados em aplicativos Swift. Ele suporta modelos do TensorFlow, PyTorch, Keras, scikit-learn e outras bibliotecas populares (através da conversão para o formato .mlmodel).
A principal vantagem do Core ML é o desempenho: os modelos são executados no dispositivo, usando CPU, GPU ou Neural Engine (em dispositivos com chip A12+). Isso garante baixa latência e privacidade dos dados.
Exemplo de uso do Core ML em Swift:
import CoreMLimport Vision
// Carregamos o modelo (por exemplo, MobileNetV2)guard let model = try? VNCoreMLModel(for: MobileNetV2().model) else { fatalError("Não foi possível carregar o modelo")}
// Criamos a requisiçãolet request = VNCoreMLRequest(model: model) { request, error in guard let results = request.results as? [VNClassificationObservation], let topResult = results.first else { return } print("Reconhecido: \\(topResult.identifier) com probabilidade \\(topResult.confidence)")}
// Executamos a requisição na imagemlet image = UIImage(named: "cat.jpg")!let handler = VNImageRequestHandler(cgImage: image.cgImage!, options: [:])try? handler.perform([request])2. Create ML — treinamento de modelos sem código (quase)
Create ML é uma ferramenta da Apple para treinar modelos de aprendizado de máquina com o mínimo de escrita de código. Ela funciona no macOS (através do Swift Playgrounds ou Xcode) e suporta tarefas como: classificação de imagens, texto, dados tabulares, sistemas de recomendação e muito mais.
Você pode treinar um modelo simplesmente fornecendo uma pasta com dados rotulados. Após o treinamento, o modelo é automaticamente convertido para o formato Core ML e está pronto para uso.
Exemplo de treinamento de um classificador de imagens em Swift:
import CreateMLimport Foundation
// Caminho para a pasta com dados de treinamento (estrutura: /train/class1/, /train/class2/)let trainingData = try MLImageClassifier.DataSource.labeledDirectories(at: URL(fileURLWithPath: "/path/to/train"))
// Criamos e treinamos o modelolet classifier = try MLImageClassifier(trainingData: trainingData)
// Avaliamos a precisão nos dados de testelet evaluationMetrics = classifier.evaluation(on: trainingData)print("Precisão: \\(evaluationMetrics.classificationError)")
// Salvamos o modelo no formato .mlmodeltry classifier.write(to: URL(fileURLWithPath: "/path/to/MyImageClassifier.mlmodel"))3. Swift for TensorFlow (S4TF) — experimentos científicos
Swift for TensorFlow é um projeto experimental do Google que traz os recursos do TensorFlow para o mundo Swift. Ele permite escrever cálculos diferenciáveis e treinar redes neurais em Swift, usando todo o poder da diferenciação automática.
Embora o projeto esteja oficialmente congelado, suas ideias vivem na comunidade, e o código pode ser usado para pesquisa e prototipagem. O S4TF é especialmente útil se você deseja criar camadas personalizadas, funções de perda ou experimentar com arquiteturas.
Exemplo de uma rede neural simples em Swift for TensorFlow:
import TensorFlow
// Definimos o modelo: rede totalmente conectada com uma Também na biblioteca
Geolocalização e mapas em Go: visão geral de bibliotecas e exemplos de código
Monitoramento de aplicações PHP: ferramentas e bibliotecas para rastrear desempenho
PHPMailer para PHP: guia completo com exemplos
Aprendizado de Máquina em PHP: uma visão geral das bibliotecas para ML