はじめに Chainer 1.16.0 のリリースでNStepLSTMが実装されました。 NStepLSTMはその名のとおりLSTMの多層化が容易に実現できるモデルとなっています。 内部的にはcuDNNで最適化されたRNNが使われており、従来のLSTMに比べて高速に動作します。 さらにNStepLSTMではミニバッチのデータの長さをそろえる必要がなくなり、各サンプルをリストに入れたものをそのまま入力できるようになりました。 これまでのように-1でpaddingしてignore_label=-1とwhereを駆使したり、データの長さ順にソートしたリストを転置して入力したりという手順が不要になりました。 そこで今回はこのNStepLSTMを使って系列ラベリングの学習をしてみました。 従来のLSTMとのインタフェースの違い NStepLSTMはこれまでのLSTMと入出力が異なるので、今まで実装し