web-dev-qa-db-fra.com

AttributeError: le module 'tensorflow' n'a pas d'attribut 'get_default_graph'

Je fais une tâche liée au sous-titrage d'image et j'ai chargé les poids du modèle de création comme celui-ci

model = InceptionV3(weights='imagenet')

Mais je reçois une erreur comme celle-ci:

AttributeError: module 'tensorflow' has no attribute 'get_default_graph'

Que devrais-je faire? Veuillez aider. Voici la sortie complète du code ci-dessus.

1 . -------------------------------------------------- ------------------------- AttributeError Traceback (dernier appel le plus récent) dans () 1 # Charger le modèle de démarrage v3 ----> 2 modèle = InceptionV3 (include_top = True, weights = 'imagenet') 3 # InceptionV3 (weights = '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'
4
Ayush Kushwaha

Dans mon cas, remplacer

à partir des modèles d'importation keras.models

avec:

à partir des modèles d'importation tensorflow.keras.models

dans mon script, a résolu ce problème.

0
Amit Rautray

Keras intégré à TensorFlow 2.0

L'article ci-dessous a clarifié cela pour moi. Les points clés sont:

  1. Keras est inclus dans le package TensorFlow 2.0
  2. Vous n'avez donc pas besoin d'installer le package Keras autonome dans votre environnement
  3. Et maintenant, les solutions mentionnées ci-dessus d'utiliser "from tensorflow.keras…" ont du sens.

Après avoir reconnu cela et effectué la modification, mes exemples de code fonctionnent avec quelques modifications mineures ici et là. https://www.pyimagesearch.com/2019/10/21/keras-vs-tf-keras-whats-the-difference-in-tensorflow-2-0/

0
jhughs

J'ai résolu ce problème en remplaçant tensorflow.keras. * Par tensorflow.python.keras. *

Exemple de travail:

from tensorflow.python.keras.models import Sequential
0
M.A.S