错误的解决方法while_loop()得到了意外的关键字参数'maximum_iterations'

时间:2019-04-27 01:46:17

标签: python tensorflow keras

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

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

1 个答案:

答案 0 :(得分:2)

有一种方法,但它并不漂亮。您可以接触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