1

我使用 mobilenet 模型来训练我的数据集并使用model.save('mobilenet2.h5'). 现在我正在尝试使用 Google Colab 加载此模型,model_new = tf.keras.models.load_model('/content/drive/MyDrive/mobilenet2.h5') 但它显示错误ValueError: Unknown layer: KerasLayer。我在线检查并尝试使用加载模型,model_new = tf.keras.models.load_model(('/content/drive/MyDrive/mobilenet2.h5'), custom_objects={'KerasLayer':hub.KerasLayer})但随后它显示错误ValueError: You are trying to load a weight file containing 2 layers into a model with 1 layers.。我尝试在本地机器上加载模型,但它再次显示第一个错误。它是如何发生的,我应该怎么做才能解决它?

使用加载模型

model = tf.keras.models.load_model('/content/drive/MyDrive/mobilenet2.h5')

追溯

ValueError                                Traceback (most recent call last)
<ipython-input-10-046714005579> in <module>()
      1 import tensorflow_hub as hub
----> 2 model = tf.keras.models.load_model('/content/drive/MyDrive/mobilenet2.h5')

8 frames
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/utils/generic_utils.py in class_and_config_for_serialized_keras_object(config, module_objects, custom_objects, printable_module_name)
    294   cls = get_registered_object(class_name, custom_objects, module_objects)
    295   if cls is None:
--> 296     raise ValueError('Unknown ' + printable_module_name + ': ' + class_name)
    297 
    298   cls_config = config['config']

ValueError: Unknown layer: KerasLayer

使用加载模型

model = tf.keras.models.load_model(('/content/drive/MyDrive/mobilenet2.h5'), custom_objects={'KerasLayer':hub.KerasLayer})

追溯

ValueError                                Traceback (most recent call last)
<ipython-input-11-7d3998cd0bd9> in <module>()
      1 import tensorflow_hub as hub
----> 2 model = tf.keras.models.load_model(('/content/drive/MyDrive/mobilenet2.h5'), custom_objects={'KerasLayer':hub.KerasLayer})

2 frames
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/saving/hdf5_format.py in load_weights_from_hdf5_group(f, layers)
    686                      'containing ' + str(len(layer_names)) +
    687                      ' layers into a model with ' + str(len(filtered_layers)) +
--> 688                      ' layers.')
    689 
    690   # We batch weight value assignments in a single backend call

ValueError: You are trying to load a weight file containing 2 layers into a model with 1 layers.

模型摘要

Layer (type)                 Output Shape              Param #   
=================================================================
keras_layer_2 (KerasLayer)   (None, 1280)              2257984   
_________________________________________________________________
dropout_2 (Dropout)          (None, 1280)              0         
_________________________________________________________________
dense_2 (Dense)              (None, 374)               479094    
=================================================================
Total params: 2,737,078
Trainable params: 479,094
Non-trainable params: 2,257,984
4

0 回答 0