可视化界面与深度学习算法相连接

目标是想做一个简单的可视化界面展示预测图片结果的(做的二分类问题,判别输入图像的真假),现在遇到的问题是可以对结果进行预测,但是默认为假。
#可视化界面结果显示部分代码片段如下所示,

result = classfication.detect_image(img)# 测算一下该img属于某个label的概率
        max_index = np.argmax(result)  # 找出概率最高的
        label = ["这是假指纹。","这是真指纹。"]
        self.label.setText(label[max_index])
        self.label.setAlignment(Qt.AlignCenter)

其中result语句对应的classfication.detect_image(计算图片概率)的代码如下:

 def detect_image(self, image):
 with torch.no_grad():
            photo   = torch.from_numpy(image)
            if self.cuda:
               photo = photo.cuda()
preds   = torch.softmax(self.model(photo)[0], dim=-1).cpu().numpy()
probability = np.max(preds)

想请问一下是哪边发生了问题?

根据你提供的代码片段,可能出现问题的地方有两个:

  1. 预测结果默认为假

这很可能是因为在你的模型中,真和假的标签分别是 0 和 1,而在 label 列表中,假和真的顺序与模型中定义的不一样。你可以尝试更改 label 列表的顺序:

label = ["这是真指纹。", "这是假指纹。"]
  1. 可视化界面没有按预期显示预测结果

在你提供的片段中,你调用了 setTextsetAlignment 方法来设置 QLabel 的文本和对齐方式,但是并没有看到你如何将该 QLabel 添加到你的 GUI 界面中。因此,你需要确保正确的创建了 QLabel,并将其添加到目标布局中。

如果你仍然无法确定问题所在,你可以通过以下方式进行排查:

  1. 检查你的模型是否已经训练好,是否可以正确地分类输入图像。你可以使用测试数据集来评估模型的分类效果,检查模型是否能够输出正确的预测结果。

  2. 在可视化界面中添加调试语句或打印语句,输出计算结果、标签值、预测概率等信息。这样可以让你更清楚地知道代码的执行过程,进而确定问题所在。

希望这些解答对你有所帮助。