我正在开发RNN并使用Tensorflow 1.1 . 我收到以下错误:

tensorflow.python.framework.errors_impl.InvalidArgumentError: The node 'model/att_seq2seq/encode/pocmru_rnn_encoder/rnn/while/Variable/Assign' has inputs from different frames. The input 'model/att_seq2seq/encode/pocmru_rnn_encoder/rnn/while/Identity_3' is in frame 'model/att_seq2seq/encode/pocmru_rnn_encoder/rnn/while/model/att_seq2seq/encode/pocmru_rnn_encoder/rnn/while/'. The input 'model/att_seq2seq/encode/pocmru_rnn_encoder/rnn/while/Variable' is in frame ''.

该错误是由动态rnn方法中的lambda函数和我的RNN中的一段代码引起的 .

  • tensorflow rnn.py "dynamic_rnn / _dynamic_rnn_loop / _time_step"使用lambda函数调用RNN . call 循环所有输入的方法 .

  • 我的代码: if type(myObject) != tf.Variable: tp = tf.Variable(myObject, validate_shape=False) else: tp = myObject

从逻辑上讲,我反复使用tf.scatter_nd_update来更新myObject . 伪代码就像 myObject = scatter_nd_update(myObject, indices, updates) . 由于tf.scatter_nd_update需要Variable作为参数并返回张量,我需要将张量包含在Variable中 . 因此上面的代码(测试变量然后换行) . 我应该如何修改我的代码才能使其正常工作?谢谢!