Python 在keras中,ResNet50模型没有使用迁移学习进行学习

Python 在keras中,ResNet50模型没有使用迁移学习进行学习,python,tensorflow,keras,conv-neural-network,resnet,Python,Tensorflow,Keras,Conv Neural Network,Resnet,我正在尝试在针对PASCAL VOC 2012数据集的Imagenet weights预训练的ResNet50模型上执行迁移学习。由于它是一个多标签数据集,我在最后一层使用了sigmoid激活函数和binary\u crossentropyloss。这些指标是精度、召回率和准确度。下面是我用来为20个类构建模型的代码(PASCAL VOC有20个类) 它运行了35个时代,直到EarlyStop,指标如下(无退出层): 即使有辍学层,我也看不出有什么不同 loss: 0.1584 - accura

我正在尝试在针对PASCAL VOC 2012数据集的Imagenet weights预训练的ResNet50模型上执行迁移学习。由于它是一个多标签数据集,我在最后一层使用了
sigmoid
激活函数和
binary\u crossentropy
loss。这些指标是
精度、召回率和准确度
。下面是我用来为20个类构建模型的代码(PASCAL VOC有20个类)

它运行了35个时代,直到EarlyStop,指标如下(无退出层):

即使有辍学层,我也看不出有什么不同

loss: 0.1584 - accuracy: 0.9428 - precision_m: 0.7212 - recall_m: 0.4333 - val_loss: 0.3508 - val_accuracy: 0.8783 - val_precision_m: 0.0595 - val_recall_m: 0.0403
有了辍学,在几个时期内,该模型的验证精度和准确度达到了0.2,但不超过0.2


我发现,和有无退出层的训练集相比,验证集的精确度和召回率都很低。我该如何解释呢?这是否意味着模型拟合过度。如果是,我该怎么办?到目前为止,模型预测是非常随机的(完全不正确)。数据集大小为11000个图像。

请修改以下代码并尝试执行

发件人:

致:

发件人:

致:


你能分享完整的代码来调试这个问题吗?
loss: 0.1195 - accuracy: 0.9551 - precision_m: 0.8200 - recall_m: 0.5420 - val_loss: 0.3535 - val_accuracy: 0.8358 - val_precision_m: 0.0583 - val_recall_m: 0.0757
loss: 0.1584 - accuracy: 0.9428 - precision_m: 0.7212 - recall_m: 0.4333 - val_loss: 0.3508 - val_accuracy: 0.8783 - val_precision_m: 0.0595 - val_recall_m: 0.0403
predictions = Dense(num_classes, activation= 'sigmoid')(x)
predictions = Dense(num_classes, activation= 'softmax')(x)
model.compile(optimizer= adam, loss='binary_crossentropy', metrics=['accuracy',precision_m,recall_m])
model.compile(optimizer= adam, loss='categorical_crossentropy', metrics=['accuracy',precision_m,recall_m])