Swift 无法打开 CoreML 模型

Ben*_* A. 6 macos swift coreml createml mlmodel

我正在尝试使用我创建的 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 Movie Thing[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:加载失败,错误错误 Domain=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 错误}}} 2021-11-07 15:56:43.132312-0500 Movie Thing[52871:2279366] [coreml] MLModelAsset: modelWithError: 加载失败,出现错误 Error Domain=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 错误}}} 错误 Domain=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 中测试和评估时,模型按预期工作。