我正在 Google Collab 的 MobileNetv2 预训练模型上构建迁移学习模型。直到昨天,一切都很好。但是,今天,执行
#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))
我收到错误:
---------------------------------------------------------------------------
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'
知道为什么会发生这种情况,我是否需要进入 /usr/local/lib/python3.6/dist-packages/tensorflow_core/python/ops/resource_variable_ops.py 文件并进行一些更改?我认为它与某些更新问题有关。关于如何解决它的任何帮助?
原文由 Pe Dro 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果它在昨天之前运行良好并且您没有更改任何内容,那么请检查两件事 - Th TF 版本,如果它最近更改了 bc,他们将“默认”TF 版本从 1.14 设置为 1.15.rc。
如果相同,则保存此文件并关闭所有 colab 窗口,甚至关闭您的 chrome 或您使用的任何浏览器,然后再次打开并尝试运行该文件。
编辑:正如我上面所说,这一定是因为 TF 版本。所以恢复到你在模型工作时使用的那个。正如您在下面的评论中提到的,它正在处理版本“dev20191010”,因此回滚到它会解决您的问题。