AttributeError: module 'tensorflow' has no attribute 'get_default_graph'
AttributeError: module 'tensorflow' has no attribute 'get_default_graph'
我正在做一些与图像字幕相关的任务,我已经像这样加载了初始模型的权重
model = InceptionV3(weights='imagenet')
但我收到这样的错误:
AttributeError: module 'tensorflow' has no attribute 'get_default_graph'
我该怎么办?请帮忙。
这是上面代码的完整输出。
1。 ---------------------------------------------- ---------------------- AttributeError Traceback(最近的
在 () 中最后调用)
1 # 加载inception v3模型
----> 2 模型 = InceptionV3(include_top=True,weights='imagenet')
3 # InceptionV3(权重='imagenet')
~/anaconda3/lib/python3.6/site-packages/keras/applications/__init__.py
in wrapper(*args, **kwargs)
26 kwargs['models'] = models
27 kwargs['utils'] = utils
---> 28 return base_fun(*args, **kwargs)
29
30 return wrapper
~/anaconda3/lib/python3.6/site-packages/keras/applications/inception_v3.py
in InceptionV3(*args, **kwargs)
9 @keras_modules_injection
10 def InceptionV3(*args, **kwargs):
---> 11 return inception_v3.InceptionV3(*args, **kwargs)
12
13
~/anaconda3/lib/python3.6/site-packages/keras_applications/inception_v3.py
in InceptionV3(include_top, weights, input_tensor, input_shape,
pooling, classes, **kwargs)
155
156 if input_tensor is None:
--> 157 img_input = layers.Input(shape=input_shape)
158 else:
159 if not backend.is_keras_tensor(input_tensor):
~/anaconda3/lib/python3.6/site-packages/keras/engine/input_layer.py
in Input(shape, batch_shape, name, dtype, sparse, tensor)
176 name=name, dtype=dtype,
177 sparse=sparse,
--> 178 input_tensor=tensor)
179 # Return tensor including _keras_shape and _keras_history.
180 # Note that in this case train_output and test_output are the same pointer.
~/anaconda3/lib/python3.6/site-packages/keras/legacy/interfaces.py
in wrapper(*args, **kwargs)
89 warnings.warn('Update your `' + object_name + '` call to the ' +
90 'Keras 2 API: ' + signature, stacklevel=2)
---> 91 return func(*args, **kwargs)
92 wrapper._original_function = func
93 return wrapper
~/anaconda3/lib/python3.6/site-packages/keras/engine/input_layer.py
in __init__(self, input_shape, batch_size, batch_input_shape, dtype,
input_tensor, sparse, name)
37 if not name:
38 prefix = 'input'
---> 39 name = prefix + '_' + str(K.get_uid(prefix))
40 super(InputLayer, self).__init__(dtype=dtype, name=name)
41
~/anaconda3/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py
in get_uid(prefix)
72 """
73 global _GRAPH_UID_DICTS
---> 74 graph = tf.get_default_graph()
75 if graph not in _GRAPH_UID_DICTS:
76 _GRAPH_UID_DICTS[graph] = defaultdict(int)
AttributeError: module 'tensorflow' has no attribute
'get_default_graph'
改变
Import keras.<something>.<something>
到
Import tensorflow.keras.<something>.<something>
其中 "something" 指的是您要导入的模块。它对我有用。
就我而言,替换
从 keras.models 导入模型
与:
来自 tensorflow。keras.models 导入模型
在我的脚本中,解决了这个问题。
发生这种情况的另一个原因是 tensorflow_backend.py
位于:lib/python3.6/site-packages/keras/backend/
使用tf.compat.v1.get_default_graph获取图表
而不是 tf.get_default_graph。
通过在目录中替换这个问题可以顺利解决。
Keras 集成到 TensorFlow 2.0
下面的文章为我解决了这个问题。要点是:
- Keras 包含在 TensorFlow 2.0 包中
- 因此无需在您的环境中安装独立的 Keras 包
- 现在前面提到的使用 "from tensorflow.keras…" 的解决方案就有意义了。
认识到这一点并进行更改后,我的代码示例在各处进行了一些小的更改。
https://www.pyimagesearch.com/2019/10/21/keras-vs-tf-keras-whats-the-difference-in-tensorflow-2-0/
我通过将 tensorflow.keras.* 替换为 tensorflow.python.keras.*[=11= 解决了这个问题]
工作示例:
from tensorflow.python.keras.models import Sequential
两个步骤在 Google Colabs
中为我解决了这个问题
第一步
改变
从 keras.something 导入一些东西
至
从 tensorflow.keras.something 导入一些东西
第二步
使用
tf.compat.v1.get_default_graph
而不是tf.get_default_graph
原因
https://www.pyimagesearch.com/2019/10/21/keras-vs-tf-keras-whats-the-difference-in-tensorflow-2-0/
我正在做一些与图像字幕相关的任务,我已经像这样加载了初始模型的权重
model = InceptionV3(weights='imagenet')
但我收到这样的错误:
AttributeError: module 'tensorflow' has no attribute 'get_default_graph'
我该怎么办?请帮忙。 这是上面代码的完整输出。
1。 ---------------------------------------------- ---------------------- AttributeError Traceback(最近的 在 () 中最后调用) 1 # 加载inception v3模型 ----> 2 模型 = InceptionV3(include_top=True,weights='imagenet') 3 # InceptionV3(权重='imagenet')
~/anaconda3/lib/python3.6/site-packages/keras/applications/__init__.py
in wrapper(*args, **kwargs)
26 kwargs['models'] = models
27 kwargs['utils'] = utils
---> 28 return base_fun(*args, **kwargs)
29
30 return wrapper
~/anaconda3/lib/python3.6/site-packages/keras/applications/inception_v3.py
in InceptionV3(*args, **kwargs)
9 @keras_modules_injection
10 def InceptionV3(*args, **kwargs):
---> 11 return inception_v3.InceptionV3(*args, **kwargs)
12
13
~/anaconda3/lib/python3.6/site-packages/keras_applications/inception_v3.py
in InceptionV3(include_top, weights, input_tensor, input_shape,
pooling, classes, **kwargs)
155
156 if input_tensor is None:
--> 157 img_input = layers.Input(shape=input_shape)
158 else:
159 if not backend.is_keras_tensor(input_tensor):
~/anaconda3/lib/python3.6/site-packages/keras/engine/input_layer.py
in Input(shape, batch_shape, name, dtype, sparse, tensor)
176 name=name, dtype=dtype,
177 sparse=sparse,
--> 178 input_tensor=tensor)
179 # Return tensor including _keras_shape and _keras_history.
180 # Note that in this case train_output and test_output are the same pointer.
~/anaconda3/lib/python3.6/site-packages/keras/legacy/interfaces.py
in wrapper(*args, **kwargs)
89 warnings.warn('Update your `' + object_name + '` call to the ' +
90 'Keras 2 API: ' + signature, stacklevel=2)
---> 91 return func(*args, **kwargs)
92 wrapper._original_function = func
93 return wrapper
~/anaconda3/lib/python3.6/site-packages/keras/engine/input_layer.py
in __init__(self, input_shape, batch_size, batch_input_shape, dtype,
input_tensor, sparse, name)
37 if not name:
38 prefix = 'input'
---> 39 name = prefix + '_' + str(K.get_uid(prefix))
40 super(InputLayer, self).__init__(dtype=dtype, name=name)
41
~/anaconda3/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py
in get_uid(prefix)
72 """
73 global _GRAPH_UID_DICTS
---> 74 graph = tf.get_default_graph()
75 if graph not in _GRAPH_UID_DICTS:
76 _GRAPH_UID_DICTS[graph] = defaultdict(int)
AttributeError: module 'tensorflow' has no attribute
'get_default_graph'
改变
Import keras.<something>.<something>
到
Import tensorflow.keras.<something>.<something>
其中 "something" 指的是您要导入的模块。它对我有用。
就我而言,替换
从 keras.models 导入模型
与:
来自 tensorflow。keras.models 导入模型
在我的脚本中,解决了这个问题。
发生这种情况的另一个原因是 tensorflow_backend.py
位于:lib/python3.6/site-packages/keras/backend/
使用tf.compat.v1.get_default_graph获取图表
而不是 tf.get_default_graph。
通过在目录中替换这个问题可以顺利解决。
Keras 集成到 TensorFlow 2.0
下面的文章为我解决了这个问题。要点是:
- Keras 包含在 TensorFlow 2.0 包中
- 因此无需在您的环境中安装独立的 Keras 包
- 现在前面提到的使用 "from tensorflow.keras…" 的解决方案就有意义了。
认识到这一点并进行更改后,我的代码示例在各处进行了一些小的更改。 https://www.pyimagesearch.com/2019/10/21/keras-vs-tf-keras-whats-the-difference-in-tensorflow-2-0/
我通过将 tensorflow.keras.* 替换为 tensorflow.python.keras.*[=11= 解决了这个问题]
工作示例:
from tensorflow.python.keras.models import Sequential
两个步骤在 Google Colabs
中为我解决了这个问题第一步
改变
从 keras.something 导入一些东西
至
从 tensorflow.keras.something 导入一些东西
第二步
使用
tf.compat.v1.get_default_graph
而不是tf.get_default_graph
原因
https://www.pyimagesearch.com/2019/10/21/keras-vs-tf-keras-whats-the-difference-in-tensorflow-2-0/