Подготовка к обновлению модели Core ML - PullRequest
0 голосов
/ 26 июня 2019

Core ML 3 теперь дает нам возможность проводить обучение на устройстве. После создания обновляемой модели Core ML нам необходимо выполнить некоторую функцию для ее обновления на устройстве с помощью функции MLUpdateTask, для которой требуется 3 параметра: Model URL, MLBatchProvider и MLModelConfiguration.

Поскольку Core ML 3 был только что выпущен, документация для него очень ограничена; в частности, о том, как подготовить данные обучения или MLBatchProvider

Вопрос: Как вы готовите тренировочные данные или создаете MLBatchprovider.

1 Ответ

0 голосов
/ 26 июня 2019

Чтобы предоставить данные в Core ML, вы создаете объект MLFeatureProvider. Это возвращает один или несколько MLFeatureValue объектов, по одному для каждого входа в вашей модели. Обычно автоматически сгенерированный класс делает это за кулисами.

Если вы хотите работать с пакетом, вы создаете MLBatchProvider, который имеет несколько MLFeatureProviders, по одному для каждого примера.

Создание MLBatchProvider для прогнозов не так сложно: просто поместите MLFeatureProviders в массив и затем используйте MLArrayBatchProvider. Опять же, автоматически сгенерированный класс имеет вспомогательный метод для этого.

Для обучения вы, вероятно, хотите загружать данные «на лету», делать случайные дополнения и так далее. В этом случае вы захотите создать новый класс, который будет использовать протокол MLBatchProvider. Он должен возвращать MLFeatureProvider для каждого примера. На этот раз MLFeatureProvider имеет не только MLFeatureValue для примера, но также MLFeatureValue для метки target / true. (У автоматически сгенерированного класса есть вспомогательный класс для этого поставщика функций обучения, но не для поставщика пакетов обучения.)

На самом деле я еще не заставил работать ни один из новых обучающих API (они терпят крах на бета-версии 2), поэтому я пока не уверен на 100%, как MLBatchProvider будет проходить через целую эпоху обучающих примеров.

...