コンパイル済み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ファイルを読み込ませると普通に動くので、コードのせいではなさそう。

対処法

あれこれ試した結果、最終的に以下で解決した。

ここから先は

401字
文章やサンプルコードは多少荒削りかもしれませんが、ブログや書籍にはまだ書いていないことを日々大量に載せています。たったの400円で、すぐに購読解除してもその月は過去記事もさかのぼって読めるので、少しでも気になる内容がある方にはオトクかと思います。

技術的なメモやサンプルコード、思いついたアイデア、考えたこと、お金の話等々、頭をよぎった諸々を気軽に垂れ流しています。

最後まで読んでいただきありがとうございます!もし参考になる部分があれば、スキを押していただけると励みになります。 Twitterもフォローしていただけたら嬉しいです。 https://twitter.com/shu223/