首页 > 解决方案 > AttributeError:“gevent._local.local”对象没有属性“值”

问题描述

我有一个 keras Sequential 模型,它在模型训练期间工作得非常好,但是当我尝试在训练模型上运行 model.predict 命令时,

我收到以下错误:-

Traceback (most recent call last):
 File "/opt/program/predictor.py", line 69, in predict
    a=model.predict(x_input, verbose=0)
  File "/usr/local/lib/python3.6/dist-packages/keras/engine/training.py", line 1456, in predict
    self._make_predict_function()
  File "/usr/local/lib/python3.6/dist-packages/keras/engine/training.py", line 378, in _make_predict_function
    **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/keras/engine/network.py", line 323, in __setattr__
    super(Network, self).__setattr__(name, value)
  File "/usr/local/lib/python3.6/dist-packages/keras/engine/base_layer.py", line 1215, in __setattr__
    if not _DISABLE_TRACKING.value:
  File "src/gevent/local.py", line 408, in gevent._local.local.__getattribute__

AttributeError: 'gevent._local.local' object has no attribute 'value'

我已搜索此错误,但找不到任何解决方案。有谁知道解决这个问题?

标签: pythonkeras

解决方案


我得到了这个错误的原因:

我的 docker 容器会自动安装最新的 keras 版本,该版本已更改为 2.3.0(新稳定版本),直到上周才可用,所以我的容器以前工作得很好。Keras 新稳定版本:2.3.0 可能与导致此冲突的 Gevent 存在一些问题。

我卸载了 keras 并安装了解决错误的 2.2.5 版本。

pip uninstall keras
pip install keras==2.2.5

推荐阅读