#RubyData_tokyo RubyData Tokyo Meetup https://speee.connpass.com/event/105127/
Red Chainerを なぜ作って今後どうするのかhatappi @RubyData Tokyo Meetup
View Slide
⾃⼰紹介• Yusaku Hatanaka (@hatappi)• Speee, Inc• Red Data Tools のメンバー• Ruby, Go, TypeScript, etc.• ḦΓେ౾͕͖
今⽇のゴール• Red Chainerがなんなのか知ってもらう• へぇ〜って思ってもらう
こんなこと話します• Red Chainerとは?• Red Chainerの歴史• 今後やりたいこと• まとめ
Red Chainerとは?
Red Chainerとは?• Rubyのための深層学習フレームワーク• Red Data Tools の1プロジェクト• red-data-tools/red-chainer• Python製の深層学習フレームワークのChainerを⼿動Rubyへポーティング• 現在はChainerのv2系がベース
Red Chainerの特徴• Define By Run• Rubyで書くことが出来る• インストールが簡単 `gem install red-chainer`
• Define And Run• 計算グラフを静的に扱う• Define By Run• 計算グラフを動的に扱う
Define And RunIUUQTXXXZPVUVCFDPNXBUDI W85/)UDTDRP
Define By RunIUUQTXXXZPVUVCFDPNXBUDI W85/)UDTDRP
Red Chainerの歴史
Red Chainerの歴史2017/08 2017/10 2018/05 現在
Red Chainerの歴史2017/08 2017/10 2018/05 現在first commit
きっかけ2017/082017/102018/05現在• OSS Gate Workshopを通じて須藤さん(@ktou)と出会う• Red Data Toolsに参加• なぜ参加したかは覚えてない たしか⾯⽩そう!と思ったからだった気がする• Red Data ToolsでRed Chainerを作りはじめる• なぜ作ろうと思ったかは覚えていない たしか⾯⽩そう!と思ったからだった気がする
どうやって移⾏していったか2017/082017/102018/05現在
どうやって移⾏していったか2017/082017/102018/05現在気合の作業!でもやったことないことだし楽しかった
Red Chainerの歴史2017/08 2017/10 2018/05 現在first release
出来るようになったこと2017/082017/102018/05現在• Multi Layer Perceptron(MLP)に必要な最低限のAPIをサポート• サンプルとしてMNISTを⽤意
Multi Layer Perceptron2017/082017/102018/05現在
MNIST2017/082017/102018/05現在
Red Chainerの歴史2017/08 2017/10 2018/05 現在畳み込み演算のサポート!
出来るようになったこと2017/082017/102018/05現在• ΈࠐΈԋࢉΛαϙʔτ• ଞʹBatchNormalization, Pooling, etc..• CIFAR-10, 100ͷαϯϓϧͷՃ• σʔλͷऔಘʹ red-data-tools/red-datasets
VGG2017/082017/102018/05現在
ResNet182017/082017/102018/05現在
例えば2017/082017/102018/05現在Red Chainerx
例えば2017/082017/102018/05現在All Ruby!!
Red Chainerの歴史2017/08 2017/10 2018/05 現在Chainer 3系への対応
Chainer 3系の対応2017/082017/102018/05現在• ⼆階以上の微分をサポート• 内部のAPIの構造も変わっている今年中には終わるはず
短い期間で⾒るとあまり 進んでないように⾒える
⻑い⽬で⾒るとちゃんと進んでる
今後やりたいこと
今後やりたいこと• 本家Chainerは追随していく• 今までのようにコードをそのままポーティングするというよりは内部のAPIなどのインターフェスなどを参考にしていくイメージ• ONNX対応をやっていきたい
ONNX https://onnx.ai/• Open Neural Network Exchangeの略• 深層学習のモデルをフレームワーク間で交換するためのフォーマット• 例えばChainerで学習したモデルをMXNetで取り込んで使うことが出来る• 1つのファイルにモデル定義とパラメータが保存されている
なぜONNX対応をするのか• なんか⾯⽩そう• 今すぐRed Chainerが実⽤化できるかでいうと厳しい• 仮に実⽤化できたとしても既存の資産がある• 直近はChainerで学習したモデルをRed Chainerで使えるようにしたい
まとめ• Red Chainerの歴史を紹介しました• ちょっとずつやるので、興味ある⼈がいたらTwitterでもこの後でも気軽に話しかけてください! 僕も分からないことだらけなので⼀緒にワイワイやりましょう!!• 今後もおもしろドリブンで開発したい