将预先训练的CoreML模型分为两个

时间:2019-08-22 14:19:13

标签: coreml coremltools

我在这里有一个来自turicreate示例的声音分类模型: https://apple.github.io/turicreate/docs/userguide/sound_classifier/

我正在尝试将此模型分成两部分,并使用coremltools库将这两部分另存为单独的CoreML模型。有人可以指导我如何执行此操作吗?

我能够加载模型,甚至可以打印出模型规格。但是不知道从这里去哪里。

import coremltools

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

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

输出应为两个CoreML模型,即上述模型分为两部分。

1 个答案:

答案 0 :(得分:1)

我不确定声音分类器模型是什么样子。如果是管道,则可以将管道中的每个子模型另存为自己的单独的mlmodel文件。

如果不是管道,则需要进行一些模型手术。您将需要从规范中删除图层(使用del spec.neuralNetworkClassifier.layers[a:b])。

您还需要更改第一个模型的输入和第二个模型的输出,以说明已删除的图层。