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

Red Chainerを
なぜ作って今後どうするのか

hatappi
November 17, 2018

Red Chainerを
なぜ作って今後どうするのか

#RubyData_tokyo
RubyData Tokyo Meetup
https://speee.connpass.com/event/105127/

hatappi

November 17, 2018
Tweet

More Decks by hatappi

Other Decks in Technology

Transcript

  1. Red Chainerを

    なぜ作って今後どうするのか
    hatappi

    @RubyData Tokyo Meetup

    View Slide

  2. ⾃⼰紹介
    • Yusaku Hatanaka (@hatappi)
    • Speee, Inc
    • Red Data Tools のメンバー
    • Ruby, Go, TypeScript, etc.
    • ḦΓେ౾͕޷͖

    View Slide

  3. 今⽇のゴール
    • Red Chainerがなんなのか知ってもらう
    • へぇ〜って思ってもらう

    View Slide

  4. こんなこと話します
    • Red Chainerとは?
    • Red Chainerの歴史
    • 今後やりたいこと
    • まとめ

    View Slide

  5. Red Chainerとは?

    View Slide

  6. Red Chainerとは?
    • Rubyのための深層学習フレームワーク
    • Red Data Tools の1プロジェクト
    • red-data-tools/red-chainer
    • Python製の深層学習フレームワークのChainerを⼿動
    Rubyへポーティング
    • 現在はChainerのv2系がベース

    View Slide

  7. Red Chainerの特徴
    • Define By Run
    • Rubyで書くことが出来る
    • インストールが簡単 `gem install red-chainer`

    View Slide

  8. Red Chainerの特徴
    • Define By Run
    • Rubyで書くことが出来る
    • インストールが簡単 `gem install red-chainer`

    View Slide

  9. • Define And Run
    • 計算グラフを静的に扱う
    • Define By Run
    • 計算グラフを動的に扱う

    View Slide

  10. Define And Run
    IUUQTXXXZPVUVCFDPNXBUDI W85/)UDTDRP

    View Slide

  11. Define By Run
    IUUQTXXXZPVUVCFDPNXBUDI W85/)UDTDRP

    View Slide

  12. Red Chainerの歴史

    View Slide

  13. Red Chainerの歴史
    2017/08 2017/10 2018/05 現在

    View Slide

  14. Red Chainerの歴史
    2017/08 2017/10 2018/05 現在
    first commit

    View Slide

  15. きっかけ
    2017/08
    2017/10
    2018/05
    現在
    • OSS Gate Workshopを通じて須藤さん(@ktou)と出会う
    • Red Data Toolsに参加
    • なぜ参加したかは覚えてない

    たしか⾯⽩そう!と思ったからだった気がする
    • Red Data ToolsでRed Chainerを作りはじめる
    • なぜ作ろうと思ったかは覚えていない

    たしか⾯⽩そう!と思ったからだった気がする

    View Slide

  16. どうやって移⾏していったか
    2017/08
    2017/10
    2018/05
    現在

    View Slide

  17. どうやって移⾏していったか
    2017/08
    2017/10
    2018/05
    現在
    気合の作業!
    でもやったことないことだし
    楽しかった

    View Slide

  18. Red Chainerの歴史
    2017/08 2017/10 2018/05 現在
    first commit

    View Slide

  19. Red Chainerの歴史
    2017/08 2017/10 2018/05 現在
    first release

    View Slide

  20. 出来るようになったこと
    2017/08
    2017/10
    2018/05
    現在
    • Multi Layer Perceptron(MLP)に必要な最低限の
    APIをサポート
    • サンプルとしてMNISTを⽤意

    View Slide

  21. Multi Layer Perceptron
    2017/08
    2017/10
    2018/05
    現在

    View Slide

  22. Multi Layer Perceptron
    2017/08
    2017/10
    2018/05
    現在

    View Slide

  23. MNIST
    2017/08
    2017/10
    2018/05
    現在

    View Slide

  24. MNIST
    2017/08
    2017/10
    2018/05
    現在

    View Slide

  25. Red Chainerの歴史
    2017/08 2017/10 2018/05 現在
    first release

    View Slide

  26. Red Chainerの歴史
    2017/08 2017/10 2018/05 現在
    畳み込み演算のサポート!

    View Slide

  27. 出来るようになったこと
    2017/08
    2017/10
    2018/05
    現在
    • ৞ΈࠐΈԋࢉΛαϙʔτ
    • ଞʹ͸BatchNormalization, Pooling, etc..
    • CIFAR-10, 100ͷαϯϓϧͷ௥Ճ
    • σʔλͷऔಘʹ͸ red-data-tools/red-datasets

    View Slide

  28. VGG
    2017/08
    2017/10
    2018/05
    現在

    View Slide

  29. VGG
    2017/08
    2017/10
    2018/05
    現在

    View Slide

  30. ResNet18
    2017/08
    2017/10
    2018/05
    現在

    View Slide

  31. ResNet18
    2017/08
    2017/10
    2018/05
    現在

    View Slide

  32. 例えば
    2017/08
    2017/10
    2018/05
    現在
    Red Chainer
    x

    View Slide

  33. 例えば
    2017/08
    2017/10
    2018/05
    現在
    All Ruby!!

    View Slide

  34. Red Chainerの歴史
    2017/08 2017/10 2018/05 現在
    畳み込み演算のサポート!

    View Slide

  35. Red Chainerの歴史
    2017/08 2017/10 2018/05 現在
    Chainer 3系への対応

    View Slide

  36. Chainer 3系の対応
    2017/08
    2017/10
    2018/05
    現在
    • ⼆階以上の微分をサポート
    • 内部のAPIの構造も変わっている
    今年中には終わるはず

    View Slide

  37. 短い期間で⾒るとあまり

    進んでないように⾒える

    View Slide

  38. ⻑い⽬で⾒ると
    ちゃんと進んでる

    View Slide

  39. 今後やりたいこと

    View Slide

  40. 今後やりたいこと
    • 本家Chainerは追随していく
    • 今までのようにコードをそのままポーティングすると
    いうよりは内部のAPIなどのインターフェスなどを参考
    にしていくイメージ
    • ONNX対応をやっていきたい

    View Slide

  41. ONNX

    https://onnx.ai/
    • Open Neural Network Exchangeの略
    • 深層学習のモデルをフレームワーク間で交換するための
    フォーマット
    • 例えばChainerで学習したモデルをMXNetで取り込んで
    使うことが出来る
    • 1つのファイルにモデル定義とパラメータが保存されている

    View Slide

  42. なぜONNX対応をするのか
    • なんか⾯⽩そう
    • 今すぐRed Chainerが実⽤化できるかでいうと厳しい
    • 仮に実⽤化できたとしても既存の資産がある
    • 直近はChainerで学習したモデルをRed Chainerで使える
    ようにしたい

    View Slide

  43. まとめ
    • Red Chainerの歴史を紹介しました
    • ちょっとずつやるので、興味ある⼈がいたらTwitterでも
    この後でも気軽に話しかけてください!

    僕も分からないことだらけなので⼀緒にワイワイやりま
    しょう!!
    • 今後もおもしろドリブンで開発したい

    View Slide