首页 > 解决方案 > Swift 无法打开 CoreML 模型

问题描述

我正在尝试使用我创建的 CoreMl 模型,但我得到了一个错误(我在其他模型中没有得到)。错误由以下行引发:let compiled = try MLModel.compileModel(at: URL(fileURLWithPath: "/Users/myname/Desktop/ItemSimilarityRecommender.mlmodel")). (注意:我尝试在我的包中使用路径并得到相同的错误)

错误是Error Domain=com.apple.CoreML Code=3 "Error reading protobuf spec. validator error: unable to open file for read" UserInfo={NSLocalizedDescription=Error reading protobuf spec. validator error: unable to open file for read}

我在网上唯一能找到的关于这个错误的信息是,如果你省略“.mlmodel”,它可能会发生,这显然不是我的问题。当我在计算机上手动编译模型时,程序也失败了。我已经制作了这个模型的多个版本来尝试解决这个问题,每次我得到同样的错误。

谢谢。

编辑:

我可以手动编译该文件,它会创建一个看似有效的 .mlmodelc 文件。但是,当我使用时try MLModel(contentsOf:),它会抛出以下内容:

2021-11-07 15:56:43.131400-0500 电影事物 [52871:2279366] [coreml] 无法打开文件:/Users/me/Desktop/ItemSimilarityRecommender.mlmodelc/coremldata.bin。它不是有效的 .mlmodelc 文件。2021-11-07 15:56:43.132186-0500 Movie Thing[52871:2279366] [coreml] MLModelAsset:加载失败并出现错误错误域 = com.apple.CoreML 代码 = 0“无法加载模型:文件:/// Users/me/Desktop/ItemSimilarityRecommender.mlmodelc/。用 Xcode 或 编译模型MLModel.compileModel(at:)。" UserInfo={NSLocalizedDescription=无法加载模型:file:///Users/me/Desktop/ItemSimilarityRecommender.mlmodelc/。使用 Xcode 编译模型或MLModel.compileModel(at:). ,NSUnderlyingError=0x6000036e3090 {Error Domain=com.apple.CoreML Code=3“无法打开文件:/Users/me/Desktop/ItemSimilarityRecommender.mlmodelc/coremldata.bin。它不是有效的.mlmodelc文件。:未指定的iostream_category错误" UserInfo={NSLocalizedDescription=无法打开文件:/Users/me/Desktop/ItemSimilarityRecommender.mlmodelc/coremldata.bin。它不是有效的 .mlmodelc 文件。: unspecified iostream_category error}}} 2021-11-07 15:56:43.132312-0500 Movie Thing[52871:2279366] [coreml] MLModelAsset: modelWithError: load failed with error Error Domain=com.apple.CoreML Code=0 "Unable加载模型:file:///Users/me/Desktop/ItemSimilarityRecommender.mlmodelc/. 使用 Xcode 或编译模型MLModel.compileModel(at:). " UserInfo={NSLocalizedDescription=无法加载模型:file:///Users/me/Desktop/ItemSimilarityRecommender.mlmodelc/。用 Xcode 或MLModel.compileModel(at:). 编译模型,NSUnderlyingError=0x6000036e3090 {Error Domain=com.apple.CoreML Code=3 “无法打开文件:/Users/me/Desktop/ItemSimilarityRecommender.mlmodelc/coremldata.bin。它不是有效的 .mlmodelc 文件。:未指定的 iostream_category 错误“UserInfo={NSLocalizedDescription=无法打开文件:/Users/me/Desktop/ItemSimilarityRecommender.mlmodelc/coremldata.bin。它不是有效的 .mlmodelc 文件。:未指定的 iostream_category 错误}}} 错误域 = com .apple.CoreML Code=0 "无法加载模型:file:///Users/me/Desktop/ItemSimilarityRecommender.mlmodelc/。使用 Xcode 编译模型或MLModel.compileModel(at:). " UserInfo={NSLocalizedDescription=无法加载模型:file:///Users/me/Desktop/ItemSimilarityRecommender.mlmodelc/。用 Xcode 或MLModel.compileModel(at:). 编译模型,NSUnderlyingError=0x6000036e3090 {Error Domain=com.apple.CoreML Code=3 “无法打开文件:/Users/me/Desktop/ItemSimilarityRecommender.mlmodelc/coremldata.bin。它不是有效的 .mlmodelc 文件。:未指定的 iostream_category 错误“UserInfo={NSLocalizedDescription=无法打开文件:/Users/me/Desktop/ItemSimilarityRecommender.mlmodelc/coremldata.bin。它不是有效的 .mlmodelc 文件。:未指定的 iostream_category 错误}}}

编辑 2:为了澄清,模型在 CreateML 中测试和评估时按预期工作。

标签: swiftmacoscoremlcreatemlmlmodel

解决方案


推荐阅读