【发布时间】:2021-05-09 20:45:57
【问题描述】:
我的测试数据集中有5960 图像:
我得到了结果指标:
TP: 5116.0
FP: 794.0
TN: 5116.0
FN: 794.0
len(testX) = 5960
一个纪元的日志:
185/185 [==============================] - 1s 6ms/step - loss: 0.4095 -
tp: 5127.0000 - fp: 783.0000 -
tn: 5127.0000 - fn: 783.0000 -
accuracy: 0.8675 - precision: 0.8675 -
recall: 0.8675 - auc: 0.9200
加载图片:
label = 1 if label == "positive" else 0
...
(trainX, testX, trainY, testY) = train_test_split(data, labels,
test_size=0.2, random_state=42)
# convert the labels from integers to vectors
testY = to_categorical(testY, num_classes=2)
我使用了 keras.metrics,但我只有两个标签:(0 和 1)。 我做错了什么?
loss, tp, fp, tn, fn, accuracy, precision, recall, auc = model.evaluate(testX, testY, verbose=1)
我认为当 image1 有标签'1'时,
- 它将 +1 添加到 TP(标签 '1')
- +1 到 TN(标签“0”)。
我的模特:
model.add(Conv2D(20, (5, 5), padding="same",
input_shape=inputShape))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2)))
# second set of CONV => RELU => POOL layers
model.add(Conv2D(50, (5, 5), padding="same"))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2)))
# first (and only) set of FC => RELU layers
model.add(Flatten())
model.add(Dense(500))
model.add(Activation("relu"))
model.add(Dropout(0.05))
# softmax classifier
model.add(Dense(classes))
model.add(Activation("softmax"))
【问题讨论】:
-
你能添加你的模型吗?
-
完成。我添加了一个模型。
-
您对标签应用了一种热编码操作?什么是损失函数?有什么不对劲。
len(testX) = 5960应该等于 TP + TN + FP + FN -
是的。我同意你的看法。但我不知道为什么......
-
我添加了更多代码。