input shape: batch_size, len_sentence, embedding
RNN: hidden_size
(output, state) = tf.nn.dynamic_rnn(lstm_cell, X_in, initial_state=_init_state,time_major=False)
output shape: batch_size, len_sentence, hidden_size
state shape: batch_size, hidden_size
embedding为任意值和hidden_size不一定相等,最终通过权重矩阵会进行匹配,不会出现维数的error。
注意:CNN中的维数需要使用公式进行计算,否则很容易出现不匹配的错误。
n_in_size = 150 # neurons in hidden layer 这个值随意指定,RNN和LSTM中有权重矩阵,最终得到指定的维数
n_hidden_units = 128
n_classes = 10 #MNSIT classes 0-9
lstm_cell = tf.nn.rnn_cell.BasicLSTMCell(n_hidden_units, forget_bias=1.0, state_is_tuple=True)
_init_state = lstm_cell.zero_state(batch_size, dtype=tf.float32)
outputs, states = tf.nn.dynamic_rnn(lstm_cell, X_in, initial_state=_init_state,time_major=False)