TypeError: 'Tensor' object does not support item assignment in TensorFlow

后端 未结 4 1106
长情又很酷
长情又很酷 2020-11-28 09:46

I try to run this code:

outputs, states = rnn.rnn(lstm_cell, x, initial_state=initial_state, sequence_length=real_length)

tensor_shape = outputs.get_shape()         


        
4条回答
  •  感情败类
    2020-11-28 10:39

    In general, a TensorFlow tensor object is not assignable*, so you cannot use it on the left-hand side of an assignment.

    The easiest way to do what you're trying to do is to build a Python list of tensors, and tf.stack() them together at the end of the loop:

    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)
    

     * With the exception of tf.Variable objects, using the Variable.assign() etc. methods. However, rnn.rnn() likely returns a tf.Tensor object that does not support this method.

提交回复
热议问题