自然言語処理でSequence to Sequenceモデルを学習する時や、単純にLSTMで入力文を固定次元ベクトルを計算したい時に、 入力が可変長であるため、ミニバッチ学習をする時に工夫が必要です。 他のフレームワーク(TensorFlowやTheano)でも同じような工夫は必要だと思われます。 例えば、 A B C D E F G A B C D E F G H I J 上記のような2つの入力があるとします。 1つ目は長さ7のSequenceで 2つ目は長さ10のSequenceとします。 オンライン学習で学習する場合は特に可変の入力でも問題ありません。 ミニバッチ学習する時に問題になるのは、 入力をmatrixで表現する時に 0 1 2 3 4 5 6 -1 -1 -1 0 1 2 3 4 5 6 7 8 9 このように1つ目の長さ7のデータに対して-1で空白を埋める必要があります。
![ChainerでLSTMでミニバッチ学習する時に注意するべきこと - あおのたすのブログ](https://cdn-ak-scissors.b.st-hatena.com/image/square/e3c507f4b4809c4fde2720aa29d67f73556a837e/height=288;version=1;width=512/https%3A%2F%2Fconnpass-tokyo.s3.amazonaws.com%2Fevent%2F26091%2F06a6baafcb7144528eee0e626c785308.png)