首页 文章

ValueError:Tensor不是此图的元素,当在Sagemaker中使用Gunicorn和Flask和Keras托管模型时

提问于
浏览
1

我使用Keras创建了一个时间序列预测器,并根据AWS文档使用Flash和Gunicorn将模型Docker化 . 我正在使用此代码加载序列化模型 .

@classmethod
def get_model(cls):
    if cls.model == None:
        cls.model = load_model('/opt/ml/bitcoin_model.h5')
    return cls.model

然后我使用预测方法来生成结果,dockerized容器在本地环境中完美地工作,但是当我尝试在sagemaker中托管模型时,它会产生这个错误 .

ValueError: Tensor Tensor("dense_1/BiasAdd:0", shape=(?, 1), dtype=float32) is not an element of this graph.

那么我该如何解决这个问题呢?

1 回答

  • 1

    通过在模型加载阶段调用_make_predict_function()方法解决了该问题 .

    @classmethod
    def get_model(cls):
        if cls.model == None:
            cls.model = load_model('/opt/ml/bitcoin_model.h5')
            cls.model._make_predict_function()
        return cls.model
    

    错误参考:https://github.com/keras-team/keras/issues/6462

相关问题