最近話題のTensorFlow.jsですが、ついに待ちに待ったモデルの保存機能が実装されました。これでWebGLを使ったGPU計算が捗りますね!ということで、とりあえず使ってみました。
TensorFlow.jsにモデルの保存機能が実装された件Meguro.es #15 @ Drecom2018/5/22@niisan-tokyo
View Slide
ワタシ● 右の写真の顔をしたおっさん● エンジニア歴 6年くらい● PHPer歴 ≒ エンジニア歴● 現在の所属会社、ニジボックス歴は2.5年くらい● 最近のブームは機械学習で音楽生成するっていうテーマ● PCを買い替えてしまった
PHPerだけど、ちゃんとJavaScriptの話ししますね
TensorFlow.js
TensorFlow.jsとは● WebGLを使って、間接的にGPUを使えるようにした、ブラウザで動かすための機械学習ライブラリ● 記法がTensorFlowに寄せられているため、TensorFlowに慣れている人だったら、簡単に習熟できる ( かもしれない )● Kerasのレイヤーも取り込んでいるので、Kerasに慣れている人でも簡単に習熟できる ( かもしれない )● 元deeplearn.js
改名してTensorFlowのファミリーになりましたhttps://speakerdeck.com/niisantokyo/deeplearnjsfalseshao-jie発表後1ヶ月程度でout of dateとなったワタシの発表
余波https://github.com/wan2land/php-tensorflow( 意訳 )このプロジェクトはWebでTensorflowするためのものだったんだけど、tensorflow.jsっていうもっと良いものができたんで、そっちつかうといいよ!このプロジェクトはここまでだぜ!マジかよ。。。
TensorFlow.jsになってできるようになったこと● TensorFlow ( python )で出力された学習済みモデルを直接インポートできるようになった ( pip instal tensorflojs )● Kerasの出力したモデルもインポートできるようになった● モデルを保存することができるようになった ( 現時点から4日ほど前 )
やったぜ!セーブ機能が入りました!!セーブ先は● local storage● indexedDB● download● HTTP/HTTPS request
使ってみる
save_test.js今回はlocal storageにデータをしまってみる
load_test.jsmodelをそのままロードしている図
JSで機械学習のナニモカもができてしまう時代が来てしまった!!
ちょっとあれな点● model.fit 中はプログレスバーのような途中経過を出す機能がまだ実装されていない ( not implement?)● KerasやTensorFlowの学習済みモデルを一旦別のライブラリで変換する必要がある ( これは仕方ない )● local storage には容量制限がある● Conv1D でsave and loadしたら、バグった
エラー時系列データを1次元畳み込みフィルターをかけて解析しようとしているやつ生成した時は普通に動く
エラー普通にモデルを呼んで学習を再開しようとしているシーン
エラーんー?最後の層の形状が [1600, 1] になるべきって書いてある?これ以外にもエラーが発生している箇所があるらしい。まだ畳み込みは早かったかも
まとめ● deeplearn.jsがTensorFlow.jsになってました。● TensorFlow.jsになったら、Kerasの書き方が使えるようになりました。● TensorFlow, Kerasの学習済みモデルをロードすることができるようになりました ( convertの必要あり )● モデルのセーブ機能が実装されました。● セーブ機能はまだ発展途上に思います
以上、お疲れ様でした