Tensor Flow – LSTM – Objeto ‘Tensor’ no iterable

Hola, estoy usando la siguiente función para lstm rnn cell.

def LSTM_RNN(_X, _istate, _weights, _biases): # Function returns a tensorflow LSTM (RNN) artificial neural network from given parameters. # Note, some code of this notebook is inspired from an slightly different # RNN architecture used on another dataset: # https://tensorhub.com/aymericdamien/tensorflow-rnn # (NOTE: This step could be greatly optimised by shaping the dataset once # input shape: (batch_size, n_steps, n_input) _X = tf.transpose(_X, [1, 0, 2]) # permute n_steps and batch_size # Reshape to prepare input to hidden activation _X = tf.reshape(_X, [-1, n_input]) # (n_steps*batch_size, n_input) # Linear activation _X = tf.matmul(_X, _weights['hidden']) + _biases['hidden'] # Define a lstm cell with tensorflow lstm_cell = rnn_cell.BasicLSTMCell(n_hidden, forget_bias=1.0) # Split data because rnn cell needs a list of inputs for the RNN inner loop _X = tf.split(0, n_steps, _X) # n_steps * (batch_size, n_hidden) # Get lstm cell output outputs, states = rnn.rnn(lstm_cell, _X, initial_state=_istate) # Linear activation # Get inner loop last output return tf.matmul(outputs[-1], _weights['out']) + _biases['out'] 

La salida de la función se almacena en la variable pred.

pred = LSTM_RNN(x, istate, weights, biases)

Pero está mostrando el siguiente error. (que establece que el objeto tensorial no es iterable).

Aquí está el enlace de la imagen ERROR – http://imgur.com/a/NhSFK

Por favor, ayúdeme con esto y pido disculpas si esta pregunta parece tonta, ya que soy bastante nuevo en la biblioteca de flujo de tensor y lstm.

Gracias.

El error ocurrió cuando se intenta desempaquetar el state con la statement c, h=state . Dependiendo de la versión de tensorflow que esté utilizando (puede verificar la información de la versión escribiendo import tensorflow; tensorflow.__version__ en el intérprete de python), en la versión anterior a r0.11, la configuración predeterminada para el argumento state_is_tuple al inicializar rnn_cell.BasicLSTMCell(n_hidden, forget_bias=1.0) se establece en False . Vea la documentación aquí.

Documentación de BasicLSTMCell en r0.10

Desde la versión tensorflow r0.11 (o la versión maestra), la configuración predeterminada para state_is_tuple se establece en True . Vea la documentación aquí.

Documentación de BasicLSTMCell en r0.11

Si instaló r0.11 o la versión maestra de tensorflow, intente cambiar la línea de inicialización de BasicLSTMCell en: lstm_cell = rnn_cell.BasicLSTMCell(n_hidden, forget_bias=1.0, state_is_tuple=False) . El error que está encontrando debería desaparecer. Aunque, su página sí dice que el comportamiento state_is_tuple=False se desaprobará pronto.

BasicLSTMCell state_is_tuple argumento documentación

Me encontré con la misma pregunta al mismo tiempo. Acabo de describir mi circunstancia que puede ser de ayuda para ti

estado como sigue

 c1_ex, T1_ex = tf. ones(10,tf. int 32) raise Type Error ... 

Encuentro que el lado izquierdo de ‘=’ se ha establecido dos nombres de vector por adelantado

mientras que el otro lado solo devuelve un vector

perdon por mi ineficiencia de ingles

su problema realmente aparece en la línea 146 no en la línea 193