Tensorflow Google ML引擎上的Keras错误:必须为占位符张量输入一个值

Tensorflow Google ML引擎上的Keras错误:必须为占位符张量输入一个值,tensorflow,machine-learning,keras,neural-network,google-cloud-ml,Tensorflow,Machine Learning,Keras,Neural Network,Google Cloud Ml,我在Google Cloud ML Engine上部署了一个模型,但当我尝试执行预测时(我使用的是curl),我得到的结果是: {“error”:“预测失败:模型执行期间的错误:流产错误(code=StatusCode.INVALID_参数,details=\”必须为占位符张量'lstm_1/keras_学习阶段'提供一个值,其中dtype bool\n\t[[Node:lstm_1/keras_学习阶段=占位符[dtype=DT_bool,shape=],\u设备=\“/job:localho

我在Google Cloud ML Engine上部署了一个模型,但当我尝试执行预测时(我使用的是curl),我得到的结果是:

{“error”:“预测失败:模型执行期间的错误:流产错误(code=StatusCode.INVALID_参数,details=\”必须为占位符张量'lstm_1/keras_学习阶段'提供一个值,其中dtype bool\n\t[[Node:lstm_1/keras_学习阶段=占位符[dtype=DT_bool,shape=],\u设备=\“/job:localhost/replica:0/task:0/device:CPU:0\”]()]\”}

我怎样才能准确地设置这个占位符张量的值?它在json上吗?这是培训期间必须做的事情吗?正如许多建议所说,我尝试设置
K.set\u learning\u phase(0)
,但没有成功


谢谢

让我猜猜看-您的模型有批量标准化层,对吗?:)

正如许多建议所说,我尝试设置
K。设置学习阶段(0)
,但没有成功

事实上——几天前我碰巧遇到了同样的问题;解决办法是

K.set_learning_phase(0)

在初始化(或加载)您的模型之前-如果您稍后在脚本中执行此操作,则会不断弹出所述错误…

让我猜猜-您的模型具有批量规范化层,对吗?:)

正如许多建议所说,我尝试设置
K。设置学习阶段(0)
,但没有成功

事实上——几天前我碰巧遇到了同样的问题;解决办法是

K.set_learning_phase(0)

在初始化(或加载)模型之前-如果您在脚本中稍后执行此操作,则所述错误会不断弹出…

那么,您的意思是在培训期间,对吗?我将尝试并报告结果。我的“快速修复”是从我的层中删除退出。Thanks@user3276768我是说在推理过程中(否则,您的
keras\u learning\u阶段
应为1,而不是0)。据我所知,您不能修改Google ML引擎执行预测的方式。这是一项服务,您只需上传保存的模型,其余的就由它来完成。因此,我无法修改底层代码。@user3276768那么,您是如何设置
K.set_learning_phase(0)的
,正如你在文章中所说的那样?我在培训脚本中设置了它,这显然是错误的。那么,你的意思是在培训期间,对吗?我会尝试并报告我的结果。我的“快速修复”是从我的层中删除辍学者。Thanks@user3276768我的意思是在推理过程中(否则,你的
keras\u learning\u阶段
应该是1,而不是0)。据我所知,您不能修改Google ML引擎执行预测的方式。这是一项服务,您只需上传保存的模型,其余的就由它来完成。因此,我无法修改底层代码。@user3276768那么,您是如何设置
K.set_learning_phase(0)的
,正如你在文章中所说的那样?我在培训脚本中设置了它,这显然是错误的。