python - 张量流后端错误。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'
期待快速解决。
解决方案
我建议您切换到使用keras
TensorFlow 中的模块。
它得到更好的维护,您不会遇到不兼容问题。
根据弗朗索瓦·乔莱特的说法:
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 中得到相应识别。请参阅以下答案以获取更多信息:
推荐阅读
- casting - 如何克隆 Rc 特征对象并将其转换为另一个特征对象?
- python - 我可以在我创建的每个函数的末尾使用 PRINT 函数而不是 RETURN 吗?
- java - 我可以编译依赖 .class 文件但没有源 .java 文件的 java 代码吗?
- jdbc - 胶水(pyspark)如何将jdbc SaveMode指定为ingore
- node.js - 如果任何测试失败,Jest 以状态 1 退出是标准的吗?
- javascript - 如何在javascript中的await链执行之间正确循环列表
- javascript - 脚本首次运行时如何修复空输出(数据)(JS)
- android - Lokalise.co 库如何覆盖 TextView 的文本属性
- python - 无法使用 PyHive 连接到 Hive
- python - Python stats 模块:如何从 GPy 中提取置信度/预测区间?