Ответ 1
В общем случае тензорный объект TensorFlow не присваивается *, поэтому вы не можете использовать его в левой части задания.
Самый простой способ сделать то, что вы пытаетесь сделать, - создать список тензоров Python и tf.stack()
их вместе в конец цикла:
outputs, states = rnn.rnn(lstm_cell, x, initial_state=initial_state,
sequence_length=real_length)
output_list = []
tensor_shape = outputs.get_shape()
for step_index in range(tensor_shape[0]):
word_index = self.x[:, step_index]
word_index = tf.reshape(word_index, [-1,1])
index_weight = tf.gather(word_weight, word_index)
output_list.append(tf.mul(outputs[step_index, :, :] , index_weight))
outputs = tf.stack(output_list)
* За исключением объектов tf.Variable
, используя методы Variable.assign()
и т.д. Однако rnn.rnn()
скорее всего возвращает объект tf.Tensor
, который не поддерживает этот метод.