0
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

衝撃の発表で、仕事に身が入らなくなった @kitajima_orihime です。
本当は他の記事を先に書こうと思っていたのですが、今日はChainerの思い出をいろいろ書きます。

私とChainerの出会い

ISPにいた頃、最初はCaffeでDLの仕事をしていました。ただCaffeってとんでもなく使いにくいじゃないですか。
まあいろいろ悪戦苦闘していたところにChainerが出てきたわけです。

Chainer 1.5頃までは社内の別のメンバがMr. Chainerをやっていて、自分としても興味がないわけじゃなかったのですが(むしろTensorflowやらなきゃな……とか思っていたり)、なかなかChainerまでは手が回りませんでした。
Chainer 1.11でしたっけ、trainerとかが整備されたところでもう一度コードを見たら、なんじゃこの簡潔なコードは!アレからひたすらChainerを推し続けた結果、社内でのMr. Chainerへの道をまっしぐらとなりました。

某案件でChainerの中身を全部追いかけて底のほうを弄ったり、全脳アーキテクチャ系の仕事でお世話になったり、急遽Chainer Chemistryについて某所でクローズドな講演を頼まれて頭ぱーんしてみたり、Chainer Meetupで何度か発表させて頂いたり。遺伝研スパコンにもお世話になりました。
気付いたら、社内で"Chainerのことならこの人に聞け"の立場を完全に獲得していました。

Chanierの良いところ

Chainer v3あたりが一番わかりやすかったかな、と思います。いまのChainerに繋がる基盤はほぼ仕上がっていて、でもハードウェアのバージョンとかに依存する細かいifはまだ少なくて。
ガリガリにC言語でチューニングしたり細かくH/Wやライブラリバージョンに合わせたチューニングをしていないのでパフォーマンスが出ないのはしょうがないとしても、Deep Learningのフレームワークの一番奥底までが見通し良く読めるってのは、PFNの鬼のような実力のなせる技ですね。

その後の私とChainer

LSWではそこまでバリバリ深層学習!って仕事内容ではなかったとはいえ、OptunaをAWS分散環境でリリース直後から使い倒してみたり色々やれたようには思います。
アラヤは言うまでもなく深層学習の会社なのでバリバリChainerに復帰しました。社内で統一フレームワークがあるわけじゃないのですが、Chainer派はやはり人数多くはないですね。

Chainerのもくもく会では、Anaconda/numpy由来のバグを踏んで胃が痛くなったりもしていました。
ChainerにPRを出せなかったのが心残りではあります。Issue出したことはあるのですが、PR出しを一度はやりたかった……

今後のChainerとの向き合い方

Chainer3あたりのあっさりとした構造、多分今後も価値があると思います。
PyTorchがどこまであっさりとした使い方をサポートするかですが、やっぱりPyTorchってPyTorchですし、あっさりとnumpy/cupyだけをサポートするChainer3あたりってわかりやすいんですよね。
深層学習の実装「フレームワーク」を学ぶには、下手にTFとかPyTorchとかに手を出すよりもChainer3を(古いとはいえ)丁寧に学ぶことには教科書的な意味があるんじゃないかな、と思います。

そしてさっさとPyTorchでもろもろ実装できるようにがんばらないとですね。エンジニアは生涯学び続ける仕事なので、まだまだ学んでいきますぞい!

Chainer ChemistryとかChainerRLとかのPyTorch移植、楽しみにしてます。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
0
Help us understand the problem. What are the problem?