shu223
コンパイル済みCore MLモデル(.mlmodelc)で"MLModelAsset: modelWithError: load failed with error"エラー

コンパイル済みCore MLモデル(.mlmodelc)で"MLModelAsset: modelWithError: load failed with error"エラー

shu223

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

対処法

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

この続きをみるには

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

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

この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
shu223

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

shu223
フリーランスiOSエンジニア。エンジニアと人生コミュニティ運営。YouTube・Podcastパーソナリティ。著書「iOS×BLE」「Metal入門」「実践ARKit」「iOSデプス詳解」他。GitHubでさまざまなOSSを公開。