python - 错误的解决方法 while_loop() got an unexpected keyword argument 'maximum_iterations'
问题描述
尝试运行代码时出现以下错误:
model = Sequential()
model.add(LSTM(4, input_shape=(1, look_back)))
TypeError:while_loop() 得到了一个意外的关键字参数“maximum_iterations”
我了解其中一个解决方案是使用另一个版本的 keras,例如这个链接。但是我使用的是我公司的桌面,每次卸载和安装都必须经过我公司的 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
在您的情况下“修复”。
推荐阅读
- wso2 - 具有多个租户的权利调解员
- java - 使用 VS Code 的 Gradle 出错:“无法使用 Gradle 分发运行构建操作”
- python - 为什么 pyplot imshow 与其颜色条不匹配?
- php - PHP添加到在foreach中创建的现有数组
- python - Configparser 中的 INI 键作为多路径错误
- java - Instagram ?__a=1 API 在响应问题中提供 HTML 登录页面
- arrays - 列中的自动序列号
- json - 在颤振中解析数据问题
- spring-boot - 将 spring-data-commons 与 spring-boot-2.1.x 一起使用时的包问题
- django - BaseInFilter 用逗号分隔值。如果一个值有逗号怎么办?