Core ML is an Apple framework to integrate machine learning models into your app.
Use the Core ML Tools Python package (coremltools) to convert models from third-party training libraries such as TensorFlow and PyTorch to the Core ML model package format. You can then use Core ML to integrate the models into your app.
Core ML provides a unified representation for all models. Your app uses Core ML APIs and user data to make predictions, and to fine-tune models, all on the user’s device. Running a model strictly on the user’s device removes any need for a network connection, which helps keep the user’s data private and your app responsive.
Core ML optimizes on-device performance by leveraging the CPU, GPU, and Apple Neural Engine (ANE) while minimizing its memory footprint and power consumption.
What is Core ML Tools?
The coremltools Python package is the primary way to convert third-party models to Core ML.
With Core ML Tools you can do the following:
- Convert trained models from libraries and frameworks such as TensorFlow and PyTorch to the Core ML model package format.
- Read, write, and optimize Core ML models.
- Verify creation and conversion by making predictions using Core ML in macOS.
- The Machine Learning page provides educational material, tutorials, guides, and documentation for Apple developers.
- The ML & Vision session videos from the World Wide Developer Conference are a great place to start if you are new to machine learning technology and Core ML.
- The Core ML documentation walks you through the first steps in developing an app with a machine learning model.
- Try out
coremltoolsin your browser with Binder:
Supported Libraries and Frameworks
You can convert trained models from the following libraries and frameworks to Core ML:
|Model Family||Supported Packages|
|Neural Networks||TensorFlow 1 (1.14.0+)|
TensorFlow 2 (2.1.0+)
|Tree Ensembles||XGboost (1.1.0)|
|Generalized Linear Models||scikit-learn (0.18.1)|
|Support Vector Machines||LIBSVM (3.22)|
|Pipelines (pre- and post-processing)||scikit-learn (0.18.1)|
Updated 2 days ago