TensorFlow: obteniendo todos los estados de un RNN

¿Cómo se obtienen todos los estados ocultos detf.nn.rnn() otf.nn.dynamic_rnn() en TensorFlow? La API solo me da el estado final.

La primera alternativa sería escribir un bucle al construir un modelo que opera directamente en RNNCell. Sin embargo, el número de pasos de tiempo no es fijo para mí y depende del lote entrante.

Algunas opciones son usar un GRU o escribir mi propio RNNCell que concatena el estado a la salida. La primera opción no es lo suficientemente general y la segunda suena demasiado arrogante.

Otra opción es hacer algo comolas respuestas en esta pregunta, obteniendo todas las variables de un RNN. Sin embargo, no estoy seguro de cómo separar los estados ocultos de otras variables de manera estándar aquí.

¿Hay una buena manera de obtener todos los estados ocultos de un RNN mientras todavía se utilizan las API RNN proporcionadas por la biblioteca?

Respuestas a la pregunta(2)

Su respuesta a la pregunta