Flask和Keras模型错误“ _thread._local”对象没有属性“值”?

问题描述

Keras在19年9月17日发布了新版本2.3.0。作为修订版本的一部分,我更新了所有库,其中包括Keras。自从我做完这个消息就出现了。

在我降级到Keras 2.2.5之后,问题消失了。

解决方法

我正在使用以下内容:python 3.6.4

flask= 1.1.1,

Keras = 2.3.0,

TensorFlow = 1.14.0,我有一个Flask服务器,可以从客户端获取图片。将Keras模型与TensorFlow后端结合使用时,我尝试从预先训练的模型中获得预测。

我正在使用以下函数上传模型(作为类的一部分)

 model_path = self.conf["model_path"] // path in conf to model
 self.model = load_model(model_path)  // uploading the model
 self.model._make_predict_function()
 p_log.info("model had been upload successfully ")

我使用以下代码进行预测:

cm_prediction = self.model.predict([face,reye,leye,fg])[0]

直到今天,我还没有任何问题,总能得到一个预测。 现在我得到以下错误:

Traceback (most recent call last):
  File "D:\code_project\path to project",line 75,in predict
    cm_prediction = self.model.predict([face,fg])[0]
  File "D:\code_project\path to project",line 1462,in predict
    callbacks=callbacks)
  File "D:\code_project\predictserver\venv\lib\site-packages\keras\engine\training_arrays.py",line 276,in predict_loop
    callbacks.model.stop_training = False
  File "D:\code_project\predictserver\venv\lib\site-packages\keras\engine\network.py",line 323,in __setattr__
    super(Network,self).__setattr__(name,value)
  File "D:\code_project\predictserver\venv\lib\site-packages\keras\engine\base_layer.py",line 1215,in __setattr__
    if not _DISABLE_TRACKING.value:
AttributeError: '_thread._local' object has no attribute 'value'

我有一个运行的简单Flask服务器:

if __name__ == '__main__':
    pre = predictor()
    # app.run(debug=True)
    app.run(host='0.0.0.0',port=12345)

模型总是被上传。

如果我在没有Flask服务器的情况下运行程序,因此手动输入,我会得到一个预测,但是一旦服务器启动,就会出现错误,并且我将停止获取预测

猜你在找的技术问答相关文章

如何检查配对的蓝牙设备是打印机还是扫描仪(Android)
是否允许实体正文进行HTTP DELETE请求?
如何将ZipInputStream转换为InputStream?
java.util.logging Java 8中的变量
PowerMockito.doReturn返回null
Java中的RESTful调用
Swing / Java:如何正确使用getText和setText字符串
特殊字符和重音字符
Android Studio中的ndk.dir错误
错误“找不到主类”