负损失,100% 准确率

数据挖掘 Python 深度学习 喀拉斯 张量流 数据科学模型
2022-02-22 16:32:39

我有一个非常小的数据集,包含 567 张图像。我在迁移学习中使用了预训练模型 resnet50。但是,只要我适合我的模型,它就会给我 100% 的准确率、100% 的验证准确率,并且在每个 epoch 损失和验证损失中都变为负数。评估显示我的输出准确率为 100%,损失为 -5915788.088888888。这是出乎意料的结果。怎么了 ?有可能还是我的模型输出不好?我使用了如下模型:

def Transfer():
    model = Sequential()
    model.add(ResNet50(include_top = False, pooling = 'avg', weights = 'imagenet'))
    model.add(Dropout(0.4))
    model.add(Dense(3, activation = 'softmax'))

    model.layers[0].trainable = False
    sgd = optimizers.SGD(lr = 0.01, decay = 1e-6, momentum = 0.9, nesterov = True)
    model.compile(optimizer = sgd, loss = 'categorical_crossentropy', metrics = ['accuracy'])
return model

精度图 损失图

1个回答

categorical_crossentropy永远不应该是负面的。它变为负数的最常见原因是不正确的数据编码。最好所有特征和目标都在 0 和 1 之间缩放。