コンパイル済みCore MLモデル(.mlmodelc)で"MLModelAsset: modelWithError: load failed with error"エラー
Core MLモデルをSwift Package Managerで扱うパッケージ内に入れたい場合等、コンパイル済みの.mlmodelcファイルを直接扱うケースがたまにある。
xcrun coremlcompiler compile HogeModel.mlmodel HogeModel.mlmodelc
このファイルから、こんな感じでMLModelオブジェクトを初期化できる。
let model = try! MLModel(contentsOf: url, configuration: configration)
で、とあるコンパイル済みモデルファイルからMLModelを初期化しようとしたところ、次のようなエラーが出た。
[coreml] MLModelAsset: load failed with error Error Domain=com.apple.CoreML Code=0 "Unable to load model at file:///private/var/containers/Bundle/Application/xxxx/xxxx.app/xxxx.mlmodelc/ with error: Error opening file stream: /private/var/containers/Bundle/Application/xxxx/xxxx.app/xxxx.mlmodelc/coremldata.bin: unspecified iostream_category error"
同じコードで別のmlmodelcファイルを読み込ませると普通に動くので、コードのせいではなさそう。
対処法
あれこれ試した結果、最終的に以下で解決した。
最後まで読んでいただきありがとうございます!もし参考になる部分があれば、スキを押していただけると励みになります。 Twitterもフォローしていただけたら嬉しいです。 https://twitter.com/shu223/