导出Keras LSTM,没有用于Tensorflow / serving的Dropout层

问题描述 投票:0回答:1

[我注意到,当使用带有tensorflow / serving docker容器的Keras LSTM模型进行部署时,对model:predict的调用将为相同的输入返回不一致的值。经过一些研究,似乎是导致问题的原因是Dropout层。

导出/保存模型不带 Dropout层以使用tensorflow / serving服务的正确方法是什么?

tensorflow machine-learning keras lstm tensorflow-serving
1个回答
0
投票

不需要摆弄Dropout层,因为未正确导出模型,所以会发生您的行为。

在将模型导出为仅张量流格式之前,应将learning_phase设置为零,指示导出的模型应在推理/测试模式下工作:

import keras.backend as K
K.set_learning_phase(0)

如果不执行此操作,则导出的模型的行为就像在训练中一样,此时Dropout无法正常工作。您可以在Keras blog中找到更多详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.