私はテンソルフローで生成的なRNNモデルを作成しようとしています。 RNNライブラリでstate_is_tupeへの新しい切り替えがデフォルトでtrueになっているため、バッチ間で状態を保存する最善の方法を見つけるのが苦労しています。私はそれを虚偽に戻すことができることを知っていますが、非難されているので、私はそれをしたくありません。私がトレーニングを終えたら、session.runの呼び出しの間に隠れた状態を維持できるようにする必要があります。これは、一度に1つのサンプルを生成するためです。私は次のようにrnnの状態を返すことができることを理解しました。Tensorflow、feed_dictでMultiRNN状態を渡す方法
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をモデルに戻したいときに問題が発生します。プレースホルダはテンソルオブジェクトでなければならないので、state_outputタプルに戻すことはできません。
私は非常に一般的な解決策を探しています。 rnnは、MultiRNNCellまたは単一のLSTMCell、または想像できる他の組み合わせであってもよい。