gpt4 book ai didi

ios - 动态加载 mlmodel

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:11:25 28 4
gpt4 key购买 nike

我正在体验 CoreML 在项目中的能力。这是我设法做到的:

  1. 在 Python 中使用 scikit-learn 创建 .pkl 文件
  2. 使用 coremltools 包将其转换为 .mlmodel 文件
  3. 将其下载到我的 iOS 应用程序
  4. 在运行时编译它:

    let classifierName = "classifier1"
    let fileName = NSString(format:"%@.mlmodel",classifierName)
    let documentsUrl:URL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first as URL!
    let destinationFileUrl = documentsUrl.appendingPathComponent(fileName as String)

    let compiledModelUrl = try? MLModel.compileModel(at: destinationFileUrl)
    let model = try? MLModel(contentsOf: compiledModelUrl!)

现在,我想使用我的模型进行预测。我尝试在示例应用程序中直接嵌入 .mlmodel 文件,这允许 XCode 在构建时创建包装类以实例化输入:

let multiArr = try? MLMultiArray.init(shape: [1], dataType: .double)
let input = classifier1Input(input: multiArr!)
let output = try? model.prediction(input: input)

但是因为我是在运行时从服务器下载文件,所以我无权访问这种包装类。

let predict = model?.prediction(from: <MLFeatureProvider>)

有什么想法吗?

最佳答案

最简单的解决方案:将 Xcode 生成的包装器类复制到 Swift 文件中,并将其添加到您的项目中。 (请注意,此包装类还展示了如何制作 MLFeatureProvider 等)

关于ios - 动态加载 mlmodel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46725723/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com