chainerのサンプルコードを集めてみた(チュートリアルも追加)
(2016.1.21追記)最近あまりメンテナンスしてないので1.5以上のバージョンを使ってる人には役に立たなくなったかもしれません。
(2015.12.15追記)当初はサンプルコードにリンクを貼っただけの記事でしたがチュートリアル等も含めたものに加筆中。また古くなった情報は順次削除・更新してます。
バージョンごとの互換性など
こっちに移しました。1.5以上を強くお勧めします。
chainerのバージョンごとの違い(2016年1月19日現在) - studylog/北の雲
1.0 1.1 1.2 黎明期バージョン
1.3 1.4 CuPy導入
1.5 1.6 色々とパワーアップした現世代
概要・チュートリアル
概要を掴むのに適したスライド
1.5以上から始めるならこちら。
Chainerチュートリアル -v1.5向け- ViEW2015
内容は重複していますが1.4以前のバージョン時代のチュートリアル。
Introduction to Chainer (LL Ring Recursive)(p17〜)
Chainerの使い方と自然言語処理への応用(〜P31)
チュートリアルドキュメントの和訳
公式ドキュメントは全部英語なので和訳してくれる人がいるとありがたいです。
1.6
Chainerチュートリアル の和訳【バージョン1.6】 - 俺とプログラミング
1.5
Chainerチュートリアル(ver. 1.5.1)を和訳 - オモンパカリスト
それ以前に和訳されたものはこちら 1.4以前を使っている人向け
(1.5を使う場合でも下のGPU編は今でも有用です)
基礎編
Chainerチュートリアルを和訳する必要があったからかいてみた(1) - sora_sakakiのブログ
GPU編
Chainerチュートリアルを和訳する必要があったからかいてみた(2): GPU編 - sora_sakakiのブログ
以下サンプルですが、大半が1.0~1.3頃に書かれたものなので、最新版の1.5では全く動かないと思います。
基礎NN
まずはここから 手書き文字を分類する定番のMnistサンプル ただのNN
公式サンプル
https://github.com/pfnet/chainer/blob/master/examples/mnist/train_mnist.py
上記コードの詳細な解説(書かれたのが1.0の時なのでサンプルと食い違うところがあるかも)
NN全般のチュートリアルにもなってます 私は最初これで勉強しました
Python - 【機械学習】ディープラーニング フレームワークChainerを試しながら解説してみる。 - Qiita
CNN 畳み込み
Refactored code for a Convolutional Autoencoder implemented with Chainer. · GitHub
DeepLearning - 深層学習でアニメ顔を分類する - Qiita
chainer-libDNN
CNN中心の便利なラッパー?
tochikuji/chainer-libDNN · GitHub(参考:chainerで(より)簡単にディープラーニングできる魔法を作りました - いんふらけいようじょのえにっき)
RecurrentNN(RNN) 時系列系
RNN言語モデル RNN-LM
yusuketomoto/chainer-char-rnn: karpathy's char-rnn (https://github.com/karpathy/char-rnn) implementation by Chainer (文字単位)
ChainerによるRNN言語モデルの学習器 · GitHub
chainer/train_ptb.py at master · pfnet/chainer · GitHub(公式)
Encoder-Decoder翻訳
Training and generation processes for neural encoder-decoder machine translation. · GitHub
attention(注意型・注目型?)を使った翻訳
chainer_examples/mt_s2s_attention.py at master · odashi/chainer_examples · GitHub
その他
tied weight Autoencoder
Variational-AutoEncoder 変分自己符号化器
RyotaKatoh/chainer-Variational-AutoEncoder · GitHub
(もし学習済みモデルを使う場合は1.2で 参考→chainer-Variational-AutoEncoderを使ってみた - studylog/北の雲)
Denosing AutoEncoder
Implementation of stacked denoising autoencoder using BriCA1 and Chainer. · GitHub
上記コードが基
DenoisingAutoEncoderでアニメ顔の特徴を抽出してみた - のんびりしているエンジニアの日記
RecursiveNN 木構造系
chainer/train_sentiment.py at master · pfnet/chainer · GitHub(公式サンプル)
以下応用系
DeepPose(人間のポーズ・姿勢分析)
Deep Q-Network(DQN 強化学習 ゲームできるようになるやつ)
ugo-nama-kun/DQN-chainer
上記コードの解説
強化学習 - DQNの生い立ち + Deep Q-NetworkをChainerで書いた - Qiita
A Neural Algorithm of Artistic Style / chainer-gogh
mattya/chainer-gogh
apple2373/chainer_stylenet: A Neural Algori... - GitHub
どんなものかは以下参考
画風を変換するアルゴリズム | Preferred Research
I implemented this with chainer! >> A Neural Algorithm of Artistic Style http://t.co/2JZrTbZpc8 pic.twitter.com/oqNsNCod8G
— Satoshi (@satoshi2373) September 1, 2015
Whoa, very nice stylized images rendered with ConvNets http://t.co/AUrIMdtse7 needs its own subreddit pic.twitter.com/JcGIztlOCO
— Andrej Karpathy (@karpathy) August 27, 2015
以下少し古くなってきた情報
GPU環境構築に苦戦している人向けの超短いチュートリアル
EC2のGPUインスタンスにChainerを5行で入れて4行で動かす - 随所に主と作れば、立処皆真なり
(1.2以前の情報。1.3以降はpycudaが必要なくなったのでもう苦戦しないはず)