【问题标题】:How to make a MLModel updatable in Swift CoreML?如何在 Swift CoreML 中使 MLModel 可更新?
【发布时间】:2020-01-08 10:13:35
【问题描述】:

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

我在 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

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

【问题讨论】:

    标签: python swift keras coreml mlmodel


    【解决方案1】:

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

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

    【讨论】:

    • 啊,我明白了,你还需要使用coremltools的测试版3.0b5。这就说得通了。非常感谢
    • 但是尝试更新模型会引发错误:[espresso] Training kernels not enabled for engine: 100 And doesn't update
    • @SebastianJ.Vogt 我一直收到同样的消息,但是模型更新在我的情况下是有效的。您是否使用 [modelName]TrainingInput 类来提供训练输入?
    • 我只是没有在完成处理程序中保存模型
    猜你喜欢
    • 2021-08-17
    • 2021-08-18
    • 1970-01-01
    • 2018-09-05
    • 2019-06-19
    • 2019-12-18
    • 2021-01-14
    • 2019-12-02
    • 2018-09-12
    相关资源
    最近更新 更多