尝试运行代码时出现以下错误:

model = Sequential()
model.add(LSTM(4, input_shape=(1, look_back)))



  TypeError:while_loop()获得了意外的关键字参数'maximum_iterations'


我知道解决方案之一是使用其他版本的keras,例如link。但是我正在使用公司的台式机,每次卸载和安装都必须经过公司的IT部门。是否有另一种不涉及更改keras版本的解决方法?

我的keras版本是v2.2.4; tensoflow是v1.1.0

最佳答案

有办法,但不是很漂亮。您可以接触TensorFlow内部和猴子补丁while_loop来忽略maximum_iterations=

from tensorflow.python.ops import control_flow_ops

orig_while_loop = control_flow_ops.while_loop

def patched_while_loop(*args, **kwargs):
    kwargs.pop("maximum_iterations", None)  # Ignore.
    return orig_while_loop(*args, **kwargs)


control_flow_ops.while_loop = patched_while_loop


请注意,这不是防弹的,即,如果将maximum_iterations作为位置(相对于关键字)参数给出,则会失败,但在您的情况下应“修复” LSTM

关于python - 错误的解决方法while_loop()得到了意外的关键字参数'maximum_iterations',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55876590/

10-12 20:27