Для эксперимента, который я сейчас выполняю, мне нужно динамически получать доступ к скрытым состояниям и выводу на каждом временном шаге и вносить в них изменения в зависимости от условия, прежде чем они перейдут к следующему временному шагу.
Так что я хочу l oop и вручную развернуть слой LSTM для обучения и не могу использовать функциональность LSTM, легко доступную в Keras.
# The code should look something like this:
input_layer = Input(shape = (time_steps, embedding_size))
cell = LSTMCell(units = hidden_units)
recurrent_layer = RNN(cell, return_states = True, return_sequences = True)
states = [tf.zeros(hidden_units, dtype = tf.float32)]*2
for time_step in time_steps:
cell_outputs = recurrent_layer(input = input_layer[:, time_step, :], states = states)
cell_output, states = cell_outputs[0], cell_outputs[1:]
# check cell_output, make changes
cell_output = tamper_celloutput(cell_output)
final_output = TimeDistributed(Dense(1))(cell_output)
myModel = Model(input_layer, final_output)
Также, когда я пробую приведенный выше код, я получить ошибки в отношении размера и размеров входов. Пробовал отлаживать и реструктурировать несколько раз.
Я не могу опубликовать весь свой код. Любая помощь, изменения и предложения будут оценены. Спасибо