Python で RNN (PyRNN) を書いたので公開します
ソースはBitbucketに置いている. > tkf / PyRNN / overview — bitbucket.org
何が出来るかというと,こんなのとか(インパクトが欲しかったので,学習の様子をアニメーションにしてみた):
左上がエラーの学習曲線,右上がパラメタのRMSの学習曲線,左下が教示信号とネットワーク出力の相空間プロット,右下がコンテキストの相空間プロット.このアニメを作るソースはこれ(が吐いたpngをconvert -delay 5 *.png nn.mpgで変換).
これを作った理由は,Pythonだと簡単に式を書けるからバグ入りにくい,だからCで書いた本番用のテストに使える!と思ったから.だから,かなり計算効率は悪いけど分かりやすい書き方になっている(はず).これを使って本番用のネットの一つバグが落とせたのはかなりうれしかったけど,その本番用のはラボにいる別の人のより性能悪いっぽいので両方共にバグがあるかも(おいw
という訳で,バグレポートお待ちしてます!←ココ!
あ,簡単なネットワークの式はPyRNN v0.0 documentation で説明してます.
追記
- README.rst にインストール方法書いてるけど,実はインストールしなくても使えます. toy/ElmanNet に色々遊べるスクリプトがあるので,それを一番根元のディレクトリ(setup.py がある場所)にもってきて実行すればおk(なはず.
- numpy と matplotlib が必要です.
- アニメの再生速度はlog scale(っぽく)速くしてます.実際は後半待つのが超ダルいです.
- momentumという黒魔術項を入れて,ネットワークの学習を加速しますけどそのせいで暴れています.でも暴れているのを見るのが楽しいです.
convertってmpgにできるんだねー
salamann
November 18, 2009 at 5:23 pm
yes
tkf
November 18, 2009 at 6:14 pm