def biLSTM(data, n_steps):
n_hidden= 24
data = tf.transpose(data, [1, 0, 2])
# Reshape to (n_steps*batch_size, n_input)
data = tf.reshape(data, [-1, 300])
# Split to get a list of 'n_steps' tensors of shape (batch_size, n_input)
data = tf.split(0, n_steps, data)
lstm_fw_cell = tf.nn.rnn_cell.BasicLSTMCell(n_hidden, forget_bias=1.0)
# Backward direction cell
lstm_bw_cell = tf.nn.rnn_cell.BasicLSTMCell(n_hidden, forget_bias=1.0)
outputs, _, _ = tf.nn.bidirectional_rnn(lstm_fw_cell, lstm_bw_cell, data, dtype=tf.float32)
return outputs, n_hidden
В моем коде я дважды вызываю эту функцию для создания двух двунаправленных LSTM. Тогда у меня возникла проблема повторного использования переменных.переменная область выпуска в Tensorflow
ValueError: Variable lstm/BiRNN_FW/BasicLSTMCell/Linear/Matrix already exists, disallowed. Did you mean to set reuse=True in VarScope?
Чтобы решить эту проблему, я добавил определение LSTM в функции в with tf.variable_scope('lstm', reuse=True) as scope:
Это привело к новому выпуску
ValueError: Variable lstm/BiRNN_FW/BasicLSTMCell/Linear/Matrix does not exist, disallowed. Did you mean to set reuse=None in VarScope?
Пожалуйста, помогите с решением этого.
Спасибо @ mad-wombat. Это сработало. Я попробовал второй вариант. –
@Mad Wombat У меня есть аналогичная проблема в https://stackoverflow.com/questions/47657157/variables-of-tensorflow-generate-error-in-a-loop/47718155?noredirect=1#comment82519963_47718155, можете ли вы любезно получить смотреть и отвечать. – khan