Разделить предварительно обученную модель CoreML на две

У меня есть модель классификации звука из примера turicreate: https://apple.github.io/turicreate/docs/userguide/sound_classifier/

Я пытаюсь разделить эту модель на две и сохранить две части как отдельные модели CoreML, используя библиотеку coremltools. Может ли кто-нибудь посоветовать мне, как это сделать?

Я могу загрузить модель и даже распечатать ее спецификации. Но не знаю, куда идти дальше.

import coremltools

mlmodel = coremltools.models.MLModel('./EnvSceneClassification.mlmodel')

# Get spec from the model
spec = mlmodel.get_spec()

На выходе должны быть две модели CoreML, т. Е. Указанная выше модель разделена на две части.


person Anuj    schedule 22.08.2019    source источник


Ответы (1)


Я не уверен на 100%, как выглядит модель звукового классификатора. Если это конвейер, вы можете просто сохранить каждую подмодель из конвейера как отдельный файл mlmodel.

Если это не трубопровод, потребуется модельная операция. Вам нужно будет удалить слои из спецификации (с del spec.neuralNetworkClassifier.layers[a:b]).

Вам также необходимо изменить входные данные первой модели и выходы второй модели, чтобы учесть удаленные слои.

person Matthijs Hollemans    schedule 23.08.2019