尝试运行代码时出现以下错误:
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/