Я пытаюсь создать генеративную модель RNN в тензорном потоке. Меня раздражает то, что с новым переключателем state_is_tupe по умолчанию в RNN-библиотеке мне трудно найти лучший способ сохранить состояние между партиями. Я знаю, что могу изменить его на Ложь, но я не хочу этого делать, поскольку он устарел. Когда я закончил тренировку, мне нужно уметь скрывать состояния между вызовами session.run, так как я буду генерировать последовательности по одному образцу за раз. Я понял, что могу вернуть состояние rnn следующим образом.Tensorflow, как передать состояние MultiRNN в feed_dict
rnn = tf.nn.rnn_cell.MultiRNNCell(cells)
zero_state = rnn.zero_state(batch_size, tf.float32)
output, final_state = tf.nn.dynamic_rnn(rnn, self.input_sound, initial_state = zero_state)
sess = tf.Session()
sess.run(tf.initialize_all_variables())
state_output = sess.run(final_state, feed_dict = {self.input_sound: np.zeros((64, 32, 512))})
Это было бы замечательно, но проблема возникает, когда я хочу передать state_output обратно в модель. Поскольку placeholder может быть только тензорным объектом, я не могу передать его обратно в state_output tupel.
Я ищу очень общее решение. Rnn может быть MultiRNNCell или одним LSTMCell или любой другой возможной комбинацией.