Upgrade to Pro — share decks privately, control downloads, hide ads and more …

mlmodel のコンパイル

Yutaka
October 27, 2017

mlmodel のコンパイル

AKIBA.swift #11? 2017.10.27

こちらの記事も併せてご参考ください。
https://qiita.com/taji-taji/items/8c5e889120788e17f389

Yutaka

October 27, 2017
Tweet

More Decks by Yutaka

Other Decks in Technology

Transcript

  1. mlmodel のコンパイル AKIBA.swift #11? 2017.10.27 多鹿豊

  2. CoreMLとかその辺の話

  3. 目次 ◦ 自己紹介 ◦ mlmodelとは? ◦ mlmodelのコンパイル • Xcodeでコンパイル •

    Swiftコードでコンパイル • コマンドラインでコンパイル ◦ まとめと今後
  4. 目次 ◦ 自己紹介 ◦ mlmodelとは? ◦ mlmodelのコンパイル • Xcodeでコンパイル •

    Swiftコードでコンパイル • コマンドラインでコンパイル ◦ まとめと今後
  5. 自己紹介(personal) ◦ 多鹿 豊 (Tajika Yutaka) ◦ @taji-taji • Qiita,

    Github
  6. 自己紹介(hobby) ◦ アプリ作ってます ◦ 観葉植物が好き

  7. 自己紹介(work) ◦ ウェルスタイル株式会社 • 家族限定SNS「wellnote」を開発・運営 ◦ iOSエンジニア • AWS, Python,

    Go, PHP, Rails とかも
  8. 目次 ◦ 自己紹介 ◦ mlmodelとは? ◦ mlmodelのコンパイル • Xcodeでコンパイル •

    Swiftコードでコンパイル • コマンドラインでコンパイル ◦ まとめと今後
  9. mlmodelとは? ◦ 機械学習のモデルをCoreMLで使える形にしたもの • Keras, Caffe, Scikit-learnで作成したモデルをcoremltoolsで変換する ことでできる ◦ 拡張子「.mlmodel」

    https://developer.apple.com/documentation/coreml
  10. 画像分類の機械学習を 取り入れる実装例 学習 推論 学習済み モデル Keras Core ML Core

    ML Tools 教師データ 未知のデータ 分類 結果 学習済み モデル
  11. 画像分類の機械学習を 取り入れる実装例 学習 推論 学習済み モデル Keras Core ML Core

    ML Tools 教師データ 未知のデータ 分類 結果 学習済み モデル
  12. mlmodelはコンパイルして使う

  13. 目次 ◦ 自己紹介 ◦ mlmodelとは? ◦ mlmodelのコンパイル • Xcodeでコンパイル •

    Swiftコードでコンパイル • コマンドラインでコンパイル ◦ まとめ
  14. Xcodeでコンパイル

  15. Xcodeでコンパイル ◦ Xcodeのプロジェクトにmlmodelファイルを追加 ◦ 追加したmlmodelファイルをターゲットに追加 ◦ Xcodeが自動でコンパイル ◦ WWDCの発表でもデモがありましたね

  16. Xcodeでコンパイル

  17. Xcodeでコンパイル

  18. Xcodeにより自動生成されたコードの一部

  19. CoreMLでモデルを使うときは mlmodelcを呼ぶ

  20. Xcodeにより自動生成されたコードの一部

  21. Xcodeでコンパイル MyApp.appの中

  22. mlmodelをコンパイルすると 「mlmodelc」 というディレクトリができる

  23. Xcodeでコンパイル MyApp.appの中

  24. Swiftコードでコンパイル

  25. Swiftコードでコンパイル ◦ メインスレッドでは行わない ◦ コンパイルされた「mlmodelc」はtemporaryディレクトリに アウトプットされる • applicationSupportDirectoryやdocumentDirectoryにコピーする必要 がある 事前に「.mlmodel」ファイルをダウン

    ロード・保存し、そのファイルパスを指 定する
  26. コマンドラインでコンパイル

  27. コマンドラインでコンパイル ◦ coremlc compile [path to mlmodel] [output path]

  28. ◦ mlmodelのコンパイル3種類 • Xcodeで自動コンパイル • Swiftコードでコンパイル • コマンドラインでコンパイル ◦ mlmodelはprotocol

    buffersベースでできているみたい • そのあたりを深掘り まとめと今後
  29. ご清聴ありがとうございました