'How to add each layer of resnet50 to an empty model?

question description:

I want to transfer resnet50 to a binary classification task. I use keras.applications Resnet50(include_top=false),so it still need last layer(dense layer) which i can set class number.First I use sequential code to combine resnet50 and dense layer. It make the model become only two layers. The first layer is resnet50 (Functional),the second layer is dense (Dense). The operation hide all the layers in resnet50 and make it become a whole layer. But I need resnet's all layer to generate grad-cam picture. So, I try to add each layer to an empty model and add the last dense layer to save all layers. But I encounter problems.

here is my code:

resnet50 = keras.applications.ResNet50(include_top = False,
pooling = 'avg',
weights = 'imagenet')
resnet50.summary()
for layer in resnet50.layers[0:-10]:
    layer.trainable = False
# resnet50_new = keras.models.Sequential([
# resnet50,
# keras.layers.Dense(number_class, activation = 'softmax'),
# ])
model=  keras.models.Sequential()
for layer in resnet50.layers:
    print(layer)
    model.add(tf.keras.layers.Lambada(layer))
model.add(keras.layers.Dense(number_class, activation = 'softmax'))
resnet_new=model
resnet50_new.compile(loss="categorical_crossentropy",
optimizer="sgd", metrics=[tf.keras.metrics.AUC(),'accuracy'])
resnet50_new.summary()

error:

Error happen in add layer,here is error information:

for layer in resnet50.layers:
        print(layer)
        model.add(tf.keras.layers.Lambada(layer))
ValueError: Exception encountered when calling layer "conv2_block1_add" (type Add).

A merge layer should be called on a list of inputs. Received: inputs=Tensor("Placeholder:0", shape=(None, None, None, 256), dtype=float32) (not a list of tensors)

Call arguments received:
  • inputs=tf.Tensor(shape=(None, None, None, 256), dtype=float32)

my understanding:

layer conv2_block1_add is a merging mayer, it can not be added by model.add((layer)) code.
but, i do not know how to manage it.
ps: today,the website can not upload image,so i can not show more pictures details,my question has been closed before,so i post a new one.I hope supervisor will not close my question.I have tried my best to clarify the question.Thank you for your help!



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source