He actualizado mi tensorflow de 0.12 a 1.0. Como resultado de eso, me encontré con el código de error ... Intento resolver el error, pero no puedo encontrar la solución. Deseo que su conocimiento y experiencia asociados con esto sean compartidos. Gracias.

self._initial_state = lstm_cell.zero_state(self.batch_size, tf.float32)
inputs = [tf.squeeze(input_, [1]) for input_ in tf.split(axis=1, num_or_size_splits=4, value=pooled_concat)]

#previous code(v.0.11) : 
self._initial_state = lstm_cell.zero_state(self.batch_size, tf.float32)
inputs = [tf.squeeze(input_, [1]) for input_ in tf.split(1, reduced, pooled_concat)] 


# -------- following code comes out the error--------- 
outputs, state = tf.nn.rnn(lstm_cell, inputs, initial_state=self._initial_state, sequence_length=self.real_len) 

# Above code creates a recurrent neural network specified by RNNCell cell in api 0.11. 
# tf.nn.rnn(cell, inputs, initial_state=None, dtype=None, sequence_length=None, scope=None) 

#---------------------------------------------------
1
Chris Joo 6 mar. 2017 a las 10:09

2 respuestas

La mejor respuesta
outputs, state = tf.nn.rnn(lstm_cell, inputs, initial_state=self._initial_state, sequence_length=self.real_len)

Debería ser (ahora, en TF 1.0):

outputs, state = tf.contrib.rnn.static_rnn(lstm_cell, inputs, initial_state=self._initial_state, sequence_length=self.real_len)

Debido a nn.rnn se ha movido a tf.contrib

1
Sergiodiaz53 6 mar. 2017 a las 14:57

A partir de la versión 1.0 de la API tf.nn.rnn se eliminó. Intente usar tf.nn.dynamic_rnn. Sin embargo, tenga en cuenta que este método espera que inputs sea un tensor y no una lista de tensores (consulte la documentación vinculada), por lo que tendrá que cambiar un poco la forma en que crea su variable inputs.

1
jabalazs 6 mar. 2017 a las 14:19