Graph Disconnected Error in using GradCam

I am quite new to ML/DL and I am trying to use GRAD-CAM on a CNN I created using VGG16 as the convolutional base. But whenever I try doing that, it throws a Graph Disconnected: cannot obtain value for tensor, regarding vgg_input layer. I don’t know how to fix it. Can somebody help me out?
I am attaching the images of my code for reference below, thanks!

MODEL:
image

FUNCTION USED FOR GRAD-CAM:

ERROR:

I had the same problem and I solved it by the way I build my model so that in this way the layers of the pretrained layer are not hidden . I don’t know how to explain this exactly so I will provide an example instead :
for example rather than building your model this way :
input_shape = (224, 224, 3)
input_layer = Input(shape=input_shape)

Load the pre-trained model

base_model = VGG16(weights=“imagenet”, include_top=False, input_shape=(224, 224, 3))
x = base_model(input_layer)
x = Conv2D(32, (3, 3), activation=‘relu’)(x)
x = GlobalAveragePooling2D()(x)
x = Dropout(0.2)(x)
predictions = Dense(1, activation=“sigmoid”)(x)
model = Model(inputs=input_layer, outputs=predictions)

you should build it this way :
inputs = tf.keras.Input(shape=(224, 224, 3))

x = keras.applications.VGG16(input_tensor=inputs ,weights=“imagenet”, include_top=False, input_shape=(224, 224, 3))
x = layers.GlobalAveragePooling2D()(x.output)
x = layers.Dropout(0.2)(x)
x = layers.Dense(1, activation=“sigmoid”)(x)
model = keras.Model(inputs, x)

You can check the difference between both approaches by printing the layers of the model for each one using model.summary()