Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

CoreMLとかその辺の話

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

自己紹介(personal) ○ 多鹿 豊 (Tajika Yutaka) ○ @taji-taji ● Qiita, Github

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

自己紹介(work) ○ ウェルスタイル株式会社 ● 家族限定SNS「wellnote」を開発・運営 ○ iOSエンジニア ● AWS, Python, Go, PHP, Rails とかも

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

mlmodelとは? ○ 機械学習のモデルをCoreMLで使える形にしたもの ● Keras, Caffe, Scikit-learnで作成したモデルをcoremltoolsで変換する ことでできる ○ 拡張子「.mlmodel」 https://developer.apple.com/documentation/coreml

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

mlmodelはコンパイルして使う

Slide 13

Slide 13 text

目次 ○ 自己紹介 ○ mlmodelとは? ○ mlmodelのコンパイル ● Xcodeでコンパイル ● Swiftコードでコンパイル ● コマンドラインでコンパイル ○ まとめ

Slide 14

Slide 14 text

Xcodeでコンパイル

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

Xcodeでコンパイル

Slide 17

Slide 17 text

Xcodeでコンパイル

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

Swiftコードでコンパイル

Slide 25

Slide 25 text

Swiftコードでコンパイル ○ メインスレッドでは行わない ○ コンパイルされた「mlmodelc」はtemporaryディレクトリに アウトプットされる ● applicationSupportDirectoryやdocumentDirectoryにコピーする必要 がある 事前に「.mlmodel」ファイルをダウン ロード・保存し、そのファイルパスを指 定する

Slide 26

Slide 26 text

コマンドラインでコンパイル

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

○ mlmodelのコンパイル3種類 ● Xcodeで自動コンパイル ● Swiftコードでコンパイル ● コマンドラインでコンパイル ○ mlmodelはprotocol buffersベースでできているみたい ● そのあたりを深掘り まとめと今後

Slide 29

Slide 29 text

ご清聴ありがとうございました