如何在Swift CoreML中使MLModel可更新?

时间:2019-09-05 13:31:53

标签: python swift keras coreml mlmodel

我正在尝试将可更新模型的CoreML 3新功能实现到我的App中,但我无法弄清楚。

我在Keras中创建了一个具有2层的神经网络,并将其转换为核心ML模型。然后,将模型包含到我的iOS项目中。 但是self.testmodel.model.modelDescription.isUpdatable始终是错误的,我无法理解苹果文档。

model = Sequential([
    Dense(10, activation="sigmoid", input_shape=(2,)),
    Dense(2, activation="relu"),
])
core_mlmodel = coremltools.converters.keras.convert(model)
core_mlmodel.save("FirstNN.mlmodel")

已集成到Swift中,现在我可以使用模型,但是无法更新

let testmodel = FirstNN()
try testmodel.prediction(input: input) // works
testmodel.model.modelDescription.isUpdatable  // is false

为什么我的模型不可更新,我该如何更改?

1 个答案:

答案 0 :(得分:1)

您可以将respect_trainable=True参数传递给coremltools.converters.keras.convert()

或者,您可以在转换后更改mlmodel文件,以使模型可更新。示例形式的官方文档在这里:https://github.com/apple/coremltools/tree/master/examples/updatable_models