张量流后端错误。 AttributeError:模块“tensorflow”没有属性“name_scope”

Posted

技术标签:

【中文标题】张量流后端错误。 AttributeError:模块“tensorflow”没有属性“name_scope”【英文标题】:tensorflow backend error. AttributeError: module 'tensorflow' has no attribute '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'

期待快速解决。

【问题讨论】:

【参考方案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

以上是关于张量流后端错误。 AttributeError:模块“tensorflow”没有属性“name_scope”的主要内容,如果未能解决你的问题,请参考以下文章

AttributeError:“张量”没有属性:“向后”

AttributeError:模块“张量流”没有属性“会话”

AttributeError:“张量”对象在 Tensorflow 2.1 中没有属性“numpy”

pytorch,AttributeError:模块“火炬”没有属性“张量”

AttributeError:“张量”对象在注意力模型中没有“分配”属性

AttributeError:“张量”对象没有属性“to_sparse”