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

TensorFlow.jsに保存機能が実装された件

 TensorFlow.jsに保存機能が実装された件

最近話題のTensorFlow.jsですが、ついに待ちに待ったモデルの保存機能が実装されました。これでWebGLを使ったGPU計算が捗りますね!ということで、とりあえず使ってみました。

NIIKURA Ryota

May 23, 2018
Tweet

More Decks by NIIKURA Ryota

Other Decks in Technology

Transcript

  1. TensorFlow.jsにモデルの保
    存機能が実装された件
    Meguro.es #15 @ Drecom
    2018/5/22
    @niisan-tokyo

    View Slide

  2. ワタシ
    ● 右の写真の顔をしたおっさん
    ● エンジニア歴 6年くらい
    ● PHPer歴 ≒ エンジニア歴
    ● 現在の所属会社、ニジボックス歴は2.5年くら

    ● 最近のブームは機械学習で音楽生成するって
    いうテーマ
    ● PCを買い替えてしまった

    View Slide

  3. PHPerだけど、ちゃんとJavaScript
    の話ししますね

    View Slide

  4. TensorFlow.js

    View Slide

  5. TensorFlow.jsとは
    ● WebGLを使って、間接的にGPUを使えるようにした、ブラウザで動かすための機
    械学習ライブラリ
    ● 記法がTensorFlowに寄せられているため、TensorFlowに慣れている人だったら、
    簡単に習熟できる ( かもしれない )
    ● Kerasのレイヤーも取り込んでいるので、Kerasに慣れている人でも簡単に習熟で
    きる ( かもしれない )
    ● 元deeplearn.js

    View Slide

  6. 改名してTensorFlowのファミリーになりました
    https://speakerdeck.com/niisantokyo/deeplearnjsfalseshao-jie
    発表後1ヶ月程度でout of dateと
    なったワタシの発表

    View Slide

  7. 余波
    https://github.com/wan2land/php-tensorflow
    ( 意訳 )このプロジェクトはWebでTensorflowするためのものだったんだけど、
    tensorflow.jsっていうもっと良いものができたんで、そっちつかうといいよ!このプロジェク
    トはここまでだぜ!
    マジかよ。。。

    View Slide

  8. TensorFlow.jsになってできるようになったこと
    ● TensorFlow ( python )で出力された学習済みモデルを直接イ
    ンポートできるようになった ( pip instal tensorflojs )
    ● Kerasの出力したモデルもインポートできるようになった
    ● モデルを保存することができるようになった ( 現時点から4日
    ほど前 )

    View Slide

  9. やったぜ!
    セーブ機能が入りました!!
    セーブ先は
    ● local storage
    ● indexedDB
    ● download
    ● HTTP/HTTPS request

    View Slide

  10. 使ってみる

    View Slide

  11. save_test.js
    今回はlocal storageに
    データをしまってみる

    View Slide

  12. load_test.js
    modelをその
    ままロードし
    ている図

    View Slide

  13. JSで機械学習のナニモカもができてしまう
    時代が来てしまった!!

    View Slide

  14. ちょっとあれな点
    ● model.fit 中はプログレスバーのような途中経過を出す機能が
    まだ実装されていない ( not implement?)
    ● KerasやTensorFlowの学習済みモデルを一旦別のライブラリ
    で変換する必要がある ( これは仕方ない )
    ● local storage には容量制限がある
    ● Conv1D でsave and loadしたら、バグった

    View Slide

  15. エラー
    時系列データを1次元畳み込みフィルターをかけて解析しようとしているやつ
    生成した時は普通に動く

    View Slide

  16. エラー
    普通にモデルを呼んで学習を再開しようとしているシーン

    View Slide

  17. エラー
    んー?
    最後の層の形状が [1600, 1] になるべきって書いてある?
    これ以外にもエラーが発生している箇所があるらしい。
    まだ畳み込みは早かったかも

    View Slide

  18. まとめ
    ● deeplearn.jsがTensorFlow.jsになってました。
    ● TensorFlow.jsになったら、Kerasの書き方が使えるようになり
    ました。
    ● TensorFlow, Kerasの学習済みモデルをロードすることができ
    るようになりました ( convertの必要あり )
    ● モデルのセーブ機能が実装されました。
    ● セーブ機能はまだ発展途上に思います

    View Slide

  19. 以上、お疲れ様でした

    View Slide