2023-05-15 23:53:06.577096: W tensorflow/c/c_api.cc:291] Operation '{name:'lstm_1/lstm_cell_1/recurrent_kernel/Assign' id:345 op device:{requested: '', assigned: ''} def:{{{node lstm_1/lstm_cell_1/recurrent_kernel/Assign}} = AssignVariableOp[_has_manual_control_dependencies=true, dtype=DT_FLOAT, validate_shape=false](lstm_1/lstm_cell_1/recurrent_kernel, lstm_1/lstm_cell_1/recurrent_kernel/Initializer/mul_1)}}' was changed by setting attribute after it was run by a session. This mutation will have no effect, and will trigger an error in the future. Either don't modify nodes after running them or create a new session. 我训练lstm模型时碰到这个提示,是什么意思?要怎么修改
时间: 2023-06-19 15:07:57 浏览: 113
这个警告的意思是你在运行会话 (session) 后对某个操作进行了属性修改,但这个修改不会生效。这是因为 TensorFlow 的图 (graph) 是静态的,即在图构建完成后就不能再修改了,而属性修改是动态的,所以这个修改不会被应用到图中。这个警告主要是为了提醒你在修改属性前要注意会话的生命周期,不要在会话运行后再对图进行修改。
如果你需要修改图中的某个操作的属性,可以考虑重新构建图,或者将属性修改放在会话开始前。具体地说,你可以在构建图时使用 `tf.Variable` 来创建变量,并在会话开始前初始化这些变量。这样,如果你需要修改某个变量的属性,可以在会话开始前修改变量的属性。如果你需要在会话运行后修改变量的值,可以使用 `tf.assign` 来修改变量的值,而不是直接修改变量的属性。