pytorch分类模型绘制混淆矩阵以及可视化详解

以下是关于“pytorch分类模型绘制混淆矩阵以及可视化详解”的完整攻略,其中包含两个示例说明。

示例1:绘制混淆矩阵

步骤1:导入必要的库

在绘制混淆矩阵之前,我们需要导入一些必要的库,包括numpymatplotlibsklearn

import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import confusion_matrix

步骤2:准备数据

在这个示例中,我们使用一个虚拟的分类模型来演示如何绘制混淆矩阵。我们首先生成一些随机的预测结果和真实标签。

# 生成随机的预测结果和真实标签
y_pred = np.random.randint(0, 10, size=100)
y_true = np.random.randint(0, 10, size=100)

步骤3:计算混淆矩阵

使用sklearn库中的confusion_matrix函数计算混淆矩阵。

# 计算混淆矩阵
cm = confusion_matrix(y_true, y_pred)

步骤4:绘制混淆矩阵

使用matplotlib库中的imshow函数绘制混淆矩阵。

# 绘制混淆矩阵
plt.imshow(cm, cmap=plt.cm.Blues)
plt.colorbar()
plt.xlabel('Predicted labels')
plt.ylabel('True labels')
plt.xticks(np.arange(10))
plt.yticks(np.arange(10))
plt.show()

步骤5:结果分析

绘制出来的混淆矩阵可以帮助我们分析模型的分类效果。在这个示例中,我们使用随机生成的数据,因此混淆矩阵中的数字没有实际意义。但是,在实际应用中,我们可以根据混淆矩阵中的数字来判断模型的分类效果。

示例2:可视化分类模型的预测结果

步骤1:导入必要的库

在可视化分类模型的预测结果之前,我们需要导入一些必要的库,包括numpymatplotlibtorchvision

import numpy as np
import matplotlib.pyplot as plt
import torchvision

步骤2:准备数据

在这个示例中,我们使用torchvision库中的CIFAR10数据集来演示如何可视化分类模型的预测结果。我们首先加载数据集并随机选择一些样本。

# 加载CIFAR10数据集
testset = torchvision.datasets.CIFAR10(root='./data', train=False, download=True, transform=None)

# 随机选择一些样本
indices = np.random.choice(len(testset), size=16, replace=False)
images = [testset[i][0] for i in indices]
labels = [testset[i][1] for i in indices]

步骤3:加载模型

在这个示例中,我们使用一个预训练的ResNet18模型来演示如何可视化分类模型的预测结果。我们首先加载模型并设置为评估模式。

# 加载预训练的ResNet18模型
model = torchvision.models.resnet18(pretrained=True)

# 设置为评估模式
model.eval()

步骤4:进行预测

使用加载的模型对随机选择的样本进行预测,并将预测结果和真实标签存储在列表中。

# 对随机选择的样本进行预测
with torch.no_grad():
    outputs = model(torch.stack(images))
    _, predicted = torch.max(outputs, 1)

# 将预测结果和真实标签存储在列表中
predicted = predicted.numpy()
labels = np.array(labels)

步骤5:可视化预测结果

使用matplotlib库中的subplot函数可视化预测结果。

# 可视化预测结果
fig, axes = plt.subplots(nrows=4, ncols=4, figsize=(10, 10))
for i, ax in enumerate(axes.flat):
    ax.imshow(images[i])
    ax.set_title(f'Predicted: {predicted[i]}, True: {labels[i]}')
    ax.axis('off')
plt.show()

步骤6:结果分析

可视化出来的预测结果可以帮助我们分析模型的分类效果。在这个示例中,我们使用预训练的ResNet18模型对CIFAR10数据集进行预测,并将预测结果可视化出来。通过观察可视化结果,我们可以判断模型的分类效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:pytorch分类模型绘制混淆矩阵以及可视化详解 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • [pytorch]pytorch loss function 总结

    原文: http://www.voidcn.com/article/p-rtzqgqkz-bpg.html 最近看了下 PyTorch 的损失函数文档,整理了下自己的理解,重新格式化了公式如下,以便以后查阅。 注意下面的损失函数都是在单个样本上计算的,粗体表示向量,否则是标量。向量的维度用 表示。 nn.L1Loss nn.SmoothL1Loss 也叫作 …

    PyTorch 2023年4月8日
    00
  • 使用pytorch框架实现使用FM模型在movielen数据集上的电影评分预测(rendle的工作)

    一、FM介绍 (1)实验的主要任务:使用FM在movielen数据集上进行电影评分预测任务(rendle的工作,经典的特征选择) (2)参考论文:Factorization Machines (3)部署环境:python37 + pytorch1.3 (4)数据集:Movielen的small数据集,使用的rating.csv文件。数据集按照8:2的比例进行…

    2023年4月8日
    00
  • PyTorch中的CUDA怎么使用

    本篇内容主要讲解“PyTorch中的CUDA怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PyTorch中的CUDA怎么使用”吧! 前言 CUDA(Compute Unified Device Architecture)是NVIDIA推出的异构计算平台,PyTorch中有专门的模块torch.cuda来设…

    PyTorch 2023年4月8日
    00
  • PyTorch grad_fn的作用以及RepeatBackward, SliceBackward示例

    变量.grad_fn表明该变量是怎么来的,用于指导反向传播。例如loss = a+b,则loss.gard_fn为<AddBackward0 at 0x7f2c90393748>,表明loss是由相加得来的,这个grad_fn可指导怎么求a和b的导数。 程序示例: import torch w1 = torch.tensor(2.0, requi…

    2023年4月7日
    00
  • pytorch神经网络解决回归问题(非常易懂)

    对于pytorch的深度学习框架,在建立人工神经网络时整体的步骤主要有以下四步: 1、载入原始数据 2、构建具体神经网络 3、进行数据的训练 4、数据测试和验证 pytorch神经网络的数据载入,以MINIST书写字体的原始数据为例: import torch import matplotlib.pyplot as  plt def plot_curve(d…

    2023年4月8日
    00
  • linux或windows环境下pytorch的安装与检查验证(解决runtimeerror问题)

    下面是在Linux或Windows环境下安装和验证PyTorch的完整攻略,包括两个示例说明。 1. 安装PyTorch 1.1 Linux环境下安装PyTorch 在Linux环境下安装PyTorch,可以使用pip命令或conda命令进行安装。以下是使用pip命令安装PyTorch的步骤: 安装pip 如果您的系统中没有安装pip,请使用以下命令安装: …

    PyTorch 2023年5月15日
    00
  • pytorch保存模型和导入模型以及预训练模型

    参考 model.state_dict()中保存了{参数名:参数值}的字典 import torchvision.models as models resnet34 = models.resnet34(pretrained=True) resnet34.state_dict().keys() for param in resnet34.parameters(…

    PyTorch 2023年4月8日
    00
  • pytorch 实现冻结部分参数训练另一部分

    PyTorch实现冻结部分参数训练另一部分 在本文中,我们将介绍如何使用PyTorch实现冻结部分参数并训练另一部分。我们将提供两个示例,一个是冻结卷积层参数,另一个是冻结全连接层参数。 示例1:冻结卷积层参数 以下是冻结卷积层参数并训练全连接层的示例代码: import torch import torch.nn as nn import torchvis…

    PyTorch 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部