Python 代码中计算 TN 的方法详解

以下代码示例展示了如何使用 Python 计算 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
            TN = (premasks == 0) & (truemasks == 0)
            TN = TN.sum(1)

            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
                else:
                    TN[bk] = TN[bk] - NE[ak]
                    JNE[ak] += TN[bk]

代码解析:

  1. TN 的定义: TN 指的是模型预测为负样本,且实际也为负样本的样本数量。
  2. 代码实现: 首先,使用 (premasks == 0) & (truemasks == 0) 来找出预测为负样本且实际也为负样本的样本。
  3. 求和: 使用 sum(1) 对所有样本的 TN 进行求和,得到每个批次中的 TN 数量。
  4. 特殊情况处理: 代码中还考虑了 TP、FP、FN 都为 0 的特殊情况,并对 TN 进行了相应的调整。

总结: 这段代码展示了如何使用 Python 计算 TN,并详细解释了代码逻辑,可以帮助你理解 TN 的计算过程。

注意: 该代码示例仅供参考,具体实现可能需要根据你的实际情况进行调整。

Python 代码中计算 TN 的方法详解

原文地址: http://www.cveoy.top/t/topic/fR2y 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录