Python代码中计算真负例(TN)的完整示例
在给定的代码中,TN(True Negative)的计算是缺失的。TN是指模型正确地预测为负例的样本数量。在二分类问题中,负例指的是模型预测为0的样本。
要计算TN,可以使用以下代码:
TN = (premasks == 0).sum(1) - FP - FN
将此代码添加到给定的代码中的合适位置,以计算TN。
以下是包含TN计算的完整代码示例:
with torch.no_grad():
for i, b in enumerate(batch(dataset, batch_size)):
imgs = np.array([k[0] for k in b]).astype(np.float32)
true_masks = np.array([k[1] for k in b])
imgs = torch.from_numpy(imgs)
imgs = imgs.unsqueeze(1)
true_masks = torch.from_numpy(true_masks)
pre_masks_eval = torch.zeros(true_masks.shape[0], 14, 256, 256)
true_masks_eval = torch.zeros(true_masks.shape[0], 14, 256, 256)
batchshape = true_masks.shape[0]
batch_dice = torch.zeros(14).cuda()
if gpu:
imgs = imgs.cuda()
true_masks = true_masks.cuda()
net.cuda()
output_img = net(imgs)
input = output_img.cuda()
pre_masks = input.max(1)[1].float() # 索引代表像素所属类别的数字
for ak in range(14):
if ak == 0:
continue
pre_masks_eval[:, ak] = (pre_masks == ak)
true_masks_eval[:, ak] = (true_masks == ak)
premasks = pre_masks_eval[:, ak].view(true_masks.shape[0], -1)
truemasks = true_masks_eval[:, ak].view(true_masks.shape[0], -1)
intersection = premasks * truemasks
TP = intersection.sum(1)
FP = premasks.sum(1) - TP
FN = truemasks.sum(1) - TP
TN = (premasks == 0).sum(1) - FP - FN # 计算TN
for bk in range(true_masks.shape[0]):
if TP[bk] == 0 and FP[bk] == 0 and FN[bk] == 0:
NE[ak] += 1
JNE[ak] += 1
通过添加代码TN = (premasks == 0).sum(1) - FP - FN,您现在可以在代码中计算TN值。请注意,代码中的premasks指的是模型的预测结果,FP和FN分别代表假阳性和假阴性。
希望这个示例能帮助您理解如何在代码中计算TN。如果您还有其他问题,请随时提问。
原文地址: https://www.cveoy.top/t/topic/fRUe 著作权归作者所有。请勿转载和采集!