Я пытаюсь повторить этот фрагмент RNN с использованием керас.
def netA (X, seq_len):
with tf.variable_scope("netA", reuse = tf.AUTO_REUSE):
cell = tf.nn.rnn_cell.MultiRNNCell([tf.contrib.rnn.BasicLSTMCell(num_units=hidden_dim, activation=tf.nn.tanh) for _ in range(num_layers)])
outputs, last_states = tf.nn.dynamic_rnn(cell, X, dtype=tf.float32, sequence_length = seq_len)
last = tf.contrib.layers.fully_connected(outputs, hidden_dim, activation_fn=tf.nn.sigmoid)
return last
Я не знаю, какова роль MultiRNNCell и могу ли я изменить его просто, используя LSTM (layer) и что делает tf.nn.dynamic_rnn Вот что я понял
model = Sequential()
for k in range(num_layers):
model.add(LSTM(units=hidden_dim, input_shape=(seq_length,data_dim), activation="tanh", return_sequences=True))
model.add(Dense(data_dim, activation="sigmoid"))
Или я должен использовать StackedRNNCells?
model.add(StackedRNNCells([LSTMCell(units=hidden_dim, input_shape=(seq_length,F_No), activation="tanh") for _ in range(num_layers)]))