Чтобы предоставить данные в Core ML, вы создаете объект MLFeatureProvider
. Это возвращает один или несколько MLFeatureValue
объектов, по одному для каждого входа в вашей модели. Обычно автоматически сгенерированный класс делает это за кулисами.
Если вы хотите работать с пакетом, вы создаете MLBatchProvider
, который имеет несколько MLFeatureProviders
, по одному для каждого примера.
Создание MLBatchProvider
для прогнозов не так сложно: просто поместите MLFeatureProviders
в массив и затем используйте MLArrayBatchProvider
. Опять же, автоматически сгенерированный класс имеет вспомогательный метод для этого.
Для обучения вы, вероятно, хотите загружать данные «на лету», делать случайные дополнения и так далее. В этом случае вы захотите создать новый класс, который будет использовать протокол MLBatchProvider
. Он должен возвращать MLFeatureProvider
для каждого примера. На этот раз MLFeatureProvider
имеет не только MLFeatureValue
для примера, но также MLFeatureValue
для метки target / true. (У автоматически сгенерированного класса есть вспомогательный класс для этого поставщика функций обучения, но не для поставщика пакетов обучения.)
На самом деле я еще не заставил работать ни один из новых обучающих API (они терпят крах на бета-версии 2), поэтому я пока не уверен на 100%, как MLBatchProvider
будет проходить через целую эпоху обучающих примеров.