私はリカレントニューラルネットワークを作成するためにtensorflowを使用しようとしています。私のコードは次のようなものです:Tensorflow RNNの入力サイズ
import tensorflow as tf
rnn_cell = tf.nn.rnn_cell.GRUCell(3)
inputs = [tf.constant([[0, 1]], dtype=tf.float32), tf.constant([[2, 3]], dtype=tf.float32)]
outputs, end = tf.nn.rnn(rnn_cell, inputs, dtype=tf.float32)
すべてがうまくいきます。しかし、私はむしろ実際に何が起こっているのか混乱しています。出力寸法は常にRNNセルの隠された状態のサイズXバッチサイズです - どのように彼らは、入力サイズの完全に独立することができますか?
私の理解が正しければ、入力が各ステップでRNNの隠された状態に連結し、次いで(他の操作の中で)重み行列が乗算されます。これはrnn_cellが作成されているため、入力がさえ宣言される前に、重み行列の寸法は、不可能で入力サイズに依存する必要があることを意味します!