我想用DenseNet做迁移学习,我找到了一个我想要解决的例子。
model_d=DenseNet121(weights='imagenet',include_top=False,
input_shape=(224, 224, 3))
x=model_d.output
x= GlobalAveragePooling2D()(x)
x= BatchNormalization()(x)
x= Dropout(0.5)(x)
x= Dense(1024,activation='relu')(x)
x= Dense(512,activation='relu')(x)
x= BatchNormalization()(x)
x= Dropout(0.5)(x)
preds=Dense(7,activation='softmax')(x)
model=Model(inputs=model_d.input,outputs=preds)
model.summary()因此,这是用这些层替换原始模型的输出。然而,当我尝试拟合模型时,我得到了一个不兼容的形状错误:
ValueError: Shapes (None, 1) and (None, 7) are incompatible然而,看着模型摘要,我不知道这是什么原因。
发布于 2021-01-31 21:04:41
我认为在Softmax函数之后,你只有一个预测类,但preds=Dense(7,activation='softmax')(x)预计有7个预测类。如果您只预测一个类,那么更改number 7 to 1可能会解决您的问题。此外,您还应该将激活更改为sigmoid,否则具有1个带有softmax的神经元将始终输出1
请注意,这只是我的假设。
https://stackoverflow.com/questions/65979366
复制相似问题