我注意到,当使用tensorflow/serving容器部署Keras模型时,对model:predict的调用将返回相同输入的不一致值。
经过一些研究,似乎是Dropout层造成了这个问题。
在没有Dropout层的情况下,导出/保存模型与tensorflow/serving一起服务的正确方法是什么?
发布于 2020-06-17 14:35:08
没有必要摆弄Dropout层,您的行为发生是因为模型没有正确导出。
在将模型导出为tensorflow格式之前,应该将learning_phase设置为零,表明导出的模型应该在推理/测试模式下工作:
import keras.backend as K
K.set_learning_phase(0)如果没有这样做,那么导出的模型的行为就像在培训中一样,而Dropout则无法按预期工作。您可以在Keras博客上找到更多细节。
https://stackoverflow.com/questions/62402707
复制相似问题