Базовое машинное обучение
iOS 11
В Carsguide.com.au мы регулярно обмениваемся информацией между командами, чтобы способствовать обмену знаниями. С выпуском iOS 11 Apple объявила о некоторых интересных новых функциях, таких как перетаскивание, многозадачность, улучшенный SiriKit, бизнес-чат, ARKit (дополненная реальность) и Core ML (машинное обучение). Поэтому мобильную команду попросили представить эти новые функции в коричневой упаковке.
Core ML позволяет разработчикам интегрировать модели машинного обучения в свои приложения, …используя всего несколько строк кода. Это основа для предметно-ориентированных структур и функций, например, ее можно найти в Vision для анализа изображений, Foundation для обработки естественного языка (например, класс NSLinguisticTagger
) и GameplayKit для оценки усвоенного решения. деревья. Сам Core ML строится поверх низкоуровневых примитивов, таких как Accelerate и BNNS, а также Metal.
Для начала вам нужно иметь модель, которая обучается, обученная модель является результатом применения алгоритма машинного обучения к набору обучающих данных, примерами поддерживаемых моделей являются нейронные сети, ансамбли деревьев, машины опорных векторов.
Core ML требует, чтобы модель имела следующее расширение файла: .mlmodel.
Если у вас есть модель с другим расширением файла, Apple предоставляет библиотеку Python под названием coremltools, которая может преобразовать вашу модель в формат .mlmodel.
Например, если ваша модель была создана с помощью Caffe, вы можете использовать coremltools для преобразования модели Caffe в формат .mlmodel:
Теперь у нас есть обученная модель в правильном формате, мы можем перетащить модель в навигатор проекта Xcode. Xcode создаст интерфейсы для представления модели.
Например, если бы у нас была модель под названием MarsHabitatPricer.mlmodel, которая выдавала бы прогнозируемую цену привычек на Марсе на основе входных значений, таких как количество солнечных панелей, количество теплиц и размер в акрах, результат перетаскивания модели в Xcode будет выглядеть следующим образом:
Чтобы получить доступ к этой модели в Swift, мы можем сделать следующее:
Чтобы наша модель начала делать прогнозы, нам нужно передать ей некоторые входные данные, мы можем использовать стандартные входные компоненты, такие как средство выбора, текстовое поле, раскрывающийся список и т. д.
Следующий код является примером использования средства выбора для получения входных значений для нашей модели.
Используя входные значения, мы можем попросить нашу модель сделать прогноз.
Далее мы можем отобразить цену
С помощью функции перетаскивания вам необходимо позаботиться о генерируемых типах параметров, например, в приведенном выше примере сгенерированный тип ввода — Double, если вы попытаетесь передать String или Float, тогда модель не будет работать, поэтому это то, на что нужно обратить внимание.
Это был очень краткий обзор Core ML, поскольку вы можете видеть, что процесс может быть довольно простым (если у вас уже есть обученная модель). Всего пара строк кода, и вы потенциально можете использовать машинное обучение в своем приложении для iOS.
Возможность конвертировать существующие модели, которые были обучены в другом формате, — это большой плюс. В настоящее время приложение Carsguide работает на iOS и Android, до выпуска CoreML было невозможно использовать одну модель машинного обучения на обоих устройствах, например, если бы у нас была модель, созданная с помощью Tensorflow, мы не могли бы использовать ее с нашей версией iOS для iOS. приложение.
С выпуском CoreML теперь можно использовать одну модель для обеих наших платформ, если инструменты преобразования, предоставляемые Apple, могут преобразовать модель. Таким образом, это означает тщательный выбор моделей и форматов, чтобы модель могла работать на обоих устройствах. Это, безусловно, выгодно для нашего бизнеса, поскольку сокращает время и деньги, необходимые для внедрения машинного обучения в наши приложения.
Ссылка: для получения дополнительной информации нажмите здесь