首页 > 解决方案 > 张量流后端错误。AttributeError:模块“tensorflow”没有属性“name_scope”

问题描述

我正在使用版本: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'

期待快速解决。

标签: pythonpython-3.xtensorflowkerasscikit-learn

解决方案


我建议您切换到使用kerasTensorFlow 中的模块。

它得到更好的维护,您不会遇到不兼容问题。

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

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 中得到相应识别。请参阅以下答案以获取更多信息:

无法在 PyCharm 中导入 Keras(来自 TensorFlow 2.0)


推荐阅读