【问题标题】:tensorflow backend error. AttributeError: module 'tensorflow' has no attribute 'name_scope'张量流后端错误。 AttributeError:模块“tensorflow”没有属性“name_scope”
【发布时间】:2020-04-29 20:58:45
【问题描述】:

我正在使用版本:TensorFlow 2.1.0 和 keras 2.3.1。在导入任何 keras 模块时,我都面临 tensorflow 后端错误。

import pandas as pd, numpy as np, os, re, json, math, time 
from keras.models import Sequential 
from keras.layers import Dense 
from keras.wrappers.scikit_learn import KerasRegressor
from sklearn.model_selection import cross_val_score 
from sklearn.model_selection import KFold 
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline 
from sklearn.model_selection import train_test_split 
---------------------------------------------------------------------------

AttributeError                            Traceback (most recent call last) <ipython-input-82-2f712055860b> in <module>
      1 import pandas as pd, numpy as np, os, re, json, math, time
----> 2 from keras.models import Sequential
      3 from keras.layers import Dense
      4 from keras.wrappers.scikit_learn import KerasRegressor
      5 from sklearn.model_selection import cross_val_score

~\Anaconda3\lib\site-packages\keras\__init__.py in <module>
      1 from __future__ import absolute_import
      2 
----> 3 from . import utils
      4 from . import activations
      5 from . import applications

~\Anaconda3\lib\site-packages\keras\utils\__init__.py in <module>
      4 from . import data_utils
      5 from . import io_utils
----> 6 from . import conv_utils
      7 from . import losses_utils
      8 from . import metrics_utils

~\Anaconda3\lib\site-packages\keras\utils\conv_utils.py in <module>
      7 from six.moves import range
      8 import numpy as np
----> 9 from .. import backend as K
     10 
     11 

~\Anaconda3\lib\site-packages\keras\backend\__init__.py in <module>
----> 1 from .load_backend import epsilon
      2 from .load_backend import set_epsilon
      3 from .load_backend import floatx
      4 from .load_backend import set_floatx
      5 from .load_backend import cast_to_floatx

~\Anaconda3\lib\site-packages\keras\backend\load_backend.py in <module>
     88 elif _BACKEND == 'tensorflow':
     89     sys.stderr.write('Using TensorFlow backend.\n')
---> 90     from .tensorflow_backend import *
     91 else:
     92     # Try and load external backend.

~\Anaconda3\lib\site-packages\keras\backend\tensorflow_backend.py in <module>
     54 get_graph = tf_keras_backend.get_graph
     55 # learning_phase_scope = tf_keras_backend.learning_phase_scope  # TODO
---> 56 name_scope = tf.name_scope
     57 
     58 

> AttributeError: module 'tensorflow' has no attribute 'name_scope'

期待快速解决。

【问题讨论】:

    标签: python python-3.x tensorflow keras scikit-learn


    【解决方案1】:

    我建议你改用 TensorFlow 中的 keras 模块。

    维护得更好,不会出现不兼容问题。

    根据弗朗索瓦·肖莱特的说法:

    Keras 2.3.0 版本来了,它是最后一个主要的多后端 发布。展望未来,建议用户切换他们的代码 转到 TensorFlow 2.0 中的 tf.keras。此版本带来 API 更改 和一些重大变化。看看引擎盖下,看看它是什么 包括,以及未来的计划。

    切换所有导入而不是

    from keras.models import Sequential 
    from keras.layers import Dense 
    

    到

    from tensorflow.keras.models import Sequential 
    from tensorflow.keras.layers import Dense 
    

    将解决您所有的不兼容问题。

    您可以将 Keras 作为一个单独的包完全卸载,因为它已默认包含在 TensorFlow 中。

    观察:如果 PyCharm 无法识别 tensorflow.keras,您需要将 PyCharm 更新到最新版本 >=2019.3。只有从该版本开始,TensorFlow 2.0 才会在 PyCharm 中得到相应识别。请查阅以下答案以获取更多信息:

    Unable to import Keras(from TensorFlow 2.0) in PyCharm

    【讨论】:

    • 嘿,感谢您的快速响应。现在,它抛出 ModuleNotFoundError: No module named 'tensorflow.keras.models'; 'tensorflow.keras' 不是一个包
    • 这是因为您使用的是旧版本的 PyCharm,它无法识别 tensorflow.keras 模块。您需要将 PyCharm 更新到 2019.3 版本才能识别它。
    • 我使用的是 Jupyter notebook 而不是 Pycharm。
    • 您使用的是哪个 Python 版本?也可能是因为 sys.path 没有必要的路径。
    • 它是 Python 3.7.4
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-09
    • 1970-01-01
    • 1970-01-01
    • 2018-09-25
    • 2020-01-04
    • 2017-12-25
    • 1970-01-01
    相关资源
    最近更新 更多