Estoy creando un modelo de aprendizaje de transferencia en el modelo preentrenado MobileNetv2 en Google Collab. Hasta ayer, todo estuvo bien. Pero hoy, al ejecutar
#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))
Recibo el error:
---------------------------------------------------------------------------
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'
¿Alguna idea de por qué sucede esto? ¿Necesito ingresar al archivo /usr/local/lib/python3.6/dist-packages/tensorflow_core/python/ops/resource_variable_ops.py y hacer algunos cambios? Creo que está relacionado con algún problema de actualización. ¿Alguna ayuda sobre cómo abordarlo?
3 respuestas
Si funcionaba bien hasta ayer y no cambió nada, compruebe dos cosas: la versión de TF, si ha cambiado bc recientemente, configuraron la versión de TF 'predeterminada' a 1.15.rc desde 1.14.
Si eso es lo mismo, guarde este archivo y cierre todas las ventanas de Colab, incluso su Chrome o cualquier navegador que esté utilizando, luego abra nuevamente e intente ejecutar el archivo.
EDITAR: Como dije anteriormente, debe ser debido a la versión TF. Regrese al que usaba cuando el modelo estaba funcionando. Como mencionó en sus comentarios a continuación, estaba funcionando en la versión ‘dev20191010 ', por lo que volver a solucionarlo solucionará su problema.
Intente abrir 'New Python 3 notebook' desde el archivo y escriba el código allí, eso resolvió mi problema.
Tuve el mismo error con tensorflow (versión 2.2.0-dev20200128) y lo arreglé actualizando protobuf (como se explica en este problema):
pip install -U protobuf=3.8.0
O si está usando Notebook (como el cuaderno de Google Colab) intente esto:
!pip install -U protobuf=3.8.0
Preguntas relacionadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.