I have trained a KERAS model (EfficientNetB5) on an image dataset, and have saved the new model with new layers into a .keras file. However, I keep getting an input error.
# Load efficientnet model without the top layer
efficientnetbasemodel = tf.keras.applications.EfficientNetB5(include_top=False,input_shape=(400, 400, 3))
# Freeze the base model layers
efficientnetbasemodel.trainable = False
#add new layers for training
name="efficientnet"
efficientnetmodel=tf.keras.Sequential([tf.keras.Input(shape=(None, None, 3), name="input_layer"),data_augmentation,efficientnetbasemodel,tf.keras.layers.GlobalAveragePooling2D(),
tf.keras.layers.Dense(128, activation='relu'),tf.keras.layers.Dropout(0.2),tf.keras.layers.Dense(len(class_names), activation='softmax')], name=name)
# Compile the model
efficientnetmodel.compile(loss='categorical_crossentropy',optimizer='adam',metrics=['accuracy'])
efficientnetmodel.fit(train_data,epochs=10,validation_data=val_data)
efficientnetmodel.save("efficientnetmodel.keras")
When I try to load the model again
from tensorflow.keras.models import load_model
# Load the model
model = load_model('efficientnetmodel.keras')
I get this error.
ValueError: Layer "dense_8" expects 1 input(s), but it received 2 input tensors. Inputs received: [<KerasTensor shape=(None, None, None, 2048), dtype=float32, sparse=False, name=keras_tensor_7687>, <KerasTensor shape=(None, None, None, 2048), dtype=float32, sparse=False, name=keras_tensor_7688>]" }