迁移学习后前一个模型的类

时间:2021-07-09 14:30:38

标签: python tensorflow transfer-learning

我有 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]

0 个答案:

没有答案