我有 Resnet50 模型,现在我想在模型中再添加 4 个类。
我使用迁移学习来做到这一点。 现在我只有模型中有 4 个类。我失去了以前的课程。 我不知道我哪里出错了。有人能告诉我发生了什么吗?
基本上,当我更新时,我希望所有类都在同一个模型中,这样我就不需要使用两个模型。
这是我的代码的一部分-:
model = ResNet50(input_tensor=image_input,
include_top=True,weights='imagenet')
last_layer = model.get_layer('avg_pool').output
x= Flatten(name='flatten')(last_layer)
out = Dense(4, activation='softmax', name='output_layer')(x)
custom_resnet_model = Model(inputs=image_input,outputs= out)
custom_resnet_model.summary()
for layer in custom_resnet_model.layers[:-1]:
layer.trainable = False
custom_resnet_model.layers[-1].trainable
custom_resnet_model.compile(loss='categorical_crossentropy',optimizer='adam',metrics=['accuracy'])
在我尝试过的评论中,有人建议使用 sol。当我通过 output=[out, model.output]
时,出现以下错误-:ValueError: Shapes (None, 4) and (None, 1000)
。
当我应用建议的解决方案时,这是模型的摘要(最后几层)-:
conv5_block3_out (Activation) (None, 7, 7, 2048) 0
conv5_block3_add[0][0]
avg_pool (GlobalAveragePooling2 (None, 2048) 0
conv5_block3_out[0][0]
flatten (Flatten) (None, 2048) 0
avg_pool[0][0]
output_layer (Dense) (None, 4) 8196
flatten[0][0]
predictions (Dense) (None, 1000) 2049000
avg_pool[0][0]