web-dev-qa-db-fra.com

AttributeError: l'objet 'google.protobuf.pyext._message.RepeatedCompositeCo' n'a pas d'attribut 'append'

Je construis un modèle d'apprentissage par transfert sur le modèle pré-formé MobileNetv2 sur Google Collab. Jusqu'à hier, tout allait bien. Mais, aujourd'hui, sur l'exécution

#Create the base model(feature_extractor) from the pre-trained model MobileNet V2
_URL = "https://tfhub.dev/google/tf2-preview/mobilenet_v2/feature_vector/2"
feature_extractor = hub.KerasLayer(_URL, input_shape=(_TARGET_SIZE, _TARGET_SIZE,3))

Je reçois l'erreur:


---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-29-663d4cbb70df> in <module>()
      2 _TARGET_SIZE = 224
      3 _URL = "https://tfhub.dev/google/tf2-preview/mobilenet_v2/feature_vector/2"
----> 4 feature_extractor = hub.KerasLayer(_URL, input_shape=(_TARGET_SIZE, _TARGET_SIZE,3))
      5 #print(feature_extractor._layers)


/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/ops/resource_variable_ops.py in _variable_handle_from_shape_and_dtype(shape, dtype, shared_name, name, graph_mode, initial_value)
    165     handle_data = cpp_shape_inference_pb2.CppShapeInferenceResult.HandleData()
    166     handle_data.is_set = True
--> 167     handle_data.shape_and_type.append(
    168         cpp_shape_inference_pb2.CppShapeInferenceResult.HandleShapeAndType(
    169             shape=shape.as_proto(), dtype=dtype.as_datatype_enum))

AttributeError: 'google.protobuf.pyext._message.RepeatedCompositeCo' object has no attribute 'append'

Une idée pourquoi cela se produit et dois-je entrer dans le fichier / usr/local/lib/python3.6/dist-packages/tensorflow_core/python/ops/resource_variable_ops.py et apporter des modifications? Je pense que c'est lié à un problème de mise à jour. Une aide sur la façon de l'aborder?

6
Pe Dro

J'ai eu la même erreur avec tensorflow (version 2.2.0-dev20200128) et l'ai corrigé en mettant à niveau protobuf (Comme expliqué dans ce problème ):

pip install -U protobuf==3.8.0

Ou si vous utilisez un ordinateur portable (comme un ordinateur portable Google Colab), essayez ceci:

!pip install -U protobuf==3.8.0
2
Masoud Maleki

Essayez d'ouvrir "Nouveau Python 3 notebook" à partir du fichier et écrivez-y du code, qui a résolu mon problème.

1
Progga Ilma

J'ai installé tensorflow et obtenais le même problème, ce que j'ai fait:

Étape 1: Protobuf mis à niveau avec:

pip install -U protobuf==3.8.0

Étape 2: Fermez tout ou l'environnement python et relancez-le.

0
Usman Mushtaq