複数のCore MLモデルを繋げてひとつのモデルにするパイプライン機能

複数のCore MLモデルを繋げてひとつのモデルにするパイプライン機能

shu223

foo.mlmodelとbar.mlmodelという2つ(以上)のモデルを、

input -> foo -> output -> bar -> output

という感じでfooの出力をbarの入力として使っているような場合に、Core ML Toolsのパイプライン機能を使用してfooとbarをがっちゃんこしたモデルfoobar.mlmodlを作ると、

input -> foobar -> output

とひとつのモデルで一気に処理できる。

これにより以下のようなメリットが考えられる:

・パフォーマンス(CPUとGPU間での行ったり来たりが減る)
・モデル利用側での実装がシンプルになる

Core ML 3から導入された機能のはずだが、__init__.pyにこれ専用のSpecification Versionの定義は見当たらない。

coremltoolsのパッケージとしては coremltools.models.pipeline を使用する。ドキュメントはこちら:

ソースコードはこ こ:

https://github.com/apple/coremltools/blob/master/coremltools/models/pipeline.py

## パイプラインの種類

____________________

ここからはマガジン購読者だけが読めますが、

「がんばって書いた記事は無料公開、
 雑にさくっと書いた記事は有料マガジンに」

という方針なのであまり大したことは書いていません。

が、たったの400円で、すぐに購読解除してもその月は過去記事もさかのぼって読めるので、少しでも気になる内容がある方にはオトクかと思います。

____________________

この続きをみるには

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

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

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

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

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