向预训练的 Mobilenet 模型添加密集层后精度下降
Accuracy is dropped after adding a dense layer to a pretrained Mobilenet model
我有以下代码,利用 mobilenetv2 进行两个 class class化。添加2个单元的致密层后,准确率大幅下降至45%。我无法弄清楚可能是什么问题,我更改了优化器,但准确性仍然没有提高。我的训练数据集是 2000,有两类,猫和狗。
custom= MobileNetV2(input_shape=None,
alpha=1.0,
include_top=True,
weights='imagenet',
input_tensor=None,
pooling=None,
classes=1000,
classifier_activation='softmax')
x= custom.output
final_output=layers.Dense(2, activation='sigmoid')(x)
model = keras.Model(inputs=custom.input, outputs = final_output)
for layer in custom.layers:
layer.trainable = False
model.compile(optimizer="adam", loss='BinaryCrossentropy', metrics=['accuracy'],loss_weights=0.1)
加载预训练模型时可以使用include_top=False
语句。此代码语句删除了预训练模型的最后一部分。
我有以下代码,利用 mobilenetv2 进行两个 class class化。添加2个单元的致密层后,准确率大幅下降至45%。我无法弄清楚可能是什么问题,我更改了优化器,但准确性仍然没有提高。我的训练数据集是 2000,有两类,猫和狗。
custom= MobileNetV2(input_shape=None,
alpha=1.0,
include_top=True,
weights='imagenet',
input_tensor=None,
pooling=None,
classes=1000,
classifier_activation='softmax')
x= custom.output
final_output=layers.Dense(2, activation='sigmoid')(x)
model = keras.Model(inputs=custom.input, outputs = final_output)
for layer in custom.layers:
layer.trainable = False
model.compile(optimizer="adam", loss='BinaryCrossentropy', metrics=['accuracy'],loss_weights=0.1)
加载预训练模型时可以使用include_top=False
语句。此代码语句删除了预训练模型的最后一部分。