Use the Core ML API directly to support custom workflows and advanced use cases.


In most cases, you interact only with your model's dynamically generated interface, which is created by Xcode automatically when you add a model to your Xcode project. You can use Core ML APIs directly in cases where you need to support custom workflows or advanced use cases. As an example, if you need to make predictions while asynchronously collecting input data into a custom structure, you can use that structure to provide input features to your model by adopting the MLFeatureProvider protocol.


Machine Learning Model

class MLModel

An encapsulation of all the details of your machine learning model.

Downloading and Compiling a Model on the User's Device

Distribute Core ML models to the user's device after the app is installed.

Making Predictions with a Sequence of Inputs

Integrate a recurrent neural network model to process sequences of inputs.

Model Features

protocol MLFeatureProvider

An interface that represents a collection of feature values for a model.

class MLDictionaryFeatureProvider

A convenience wrapper for the given dictionary of data.

class MLFeatureValue

An immutable instance representing a feature's type and value.

class MLFeatureDescription

A description of a feature.

class MLMultiArray

A multidimensional array used as input or output for a model.

Custom Layers

Integrating Custom Layers

Integrate custom neural network layers into your Core ML app.

Creating a Custom Layer

Make your own custom layer for Core ML models.

protocol MLCustomLayer

An interface that defines the behavior of a custom layer in your neural network model.


struct MLModelError

Error codes for Core ML.