import torch
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
from mydataset import MyDataset
import argparse
from torch.utils.data import DataLoader
import torch.nn as nn

# 定义args
parser = argparse.ArgumentParser()
parser.add_argument('--root2', type=str, default='path_to_root2', help='测试数据集的根目录')
parser.add_argument('--txtpath2', type=str, default='path_to_txtpath2', help='测试数据集txt文件的路径')
parser.add_argument('--batch_size', type=int, default=32, help='测试的批量大小')
args = parser.parse_args()

# 将args传递给相关函数
test_dataset = MyDataset(args.root2, args.txtpath2, transform=None)
test_loader = DataLoader(dataset=test_dataset, batch_size=args.batch_size, shuffle=True, num_workers=0)

# 加载模型
model = torch.load('./modelpth/68.pth')

# 定义损失函数
criterion = nn.CrossEntropyLoss()

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

# 运行测试并获取混淆矩阵
accuracy, _, _, C = test(model, test_loader, criterion)

# 使用Seaborn和Matplotlib创建混淆矩阵可视化
fig = plt.figure()
ax = fig.add_subplot(111)
df = pd.DataFrame(C)
sns.heatmap(df, fmt='g', annot=True, annot_kws={'size': 10}, xticklabels=['1', '2', '3', '4', '5', '6'], yticklabels=['1', '2', '3', '4', '5', '6'], cmap='Blues')
ax.set_xlabel('预测标签')
ax.set_ylabel('真实标签')
plt.savefig('confusion_matrix.jpg')
plt.show()

FileNotFoundError: [Errno 2] No such file or directory: 'path_to_txtpath2' 错误分析

这个错误是由于找不到指定的文件或目录导致的。你需要将--txtpath2参数的值修改为正确的文件路径, 确保文件路径是正确的,并且文件存在于指定的路径中。

以下是一些排查步骤:

  1. 确认文件路径: 确保 'path_to_txtpath2' 是您测试数据集txt文件的完整路径, 包括文件名和扩展名。
  2. 检查文件是否存在: 进入到您指定的目录, 确认文件是否存在。
  3. 检查权限: 确保您的程序有权限读取该文件。
  4. 使用绝对路径: 尝试使用文件的绝对路径,而不是相对路径。

修改完路径后,重新运行代码即可。

PyTorch混淆矩阵可视化与模型评估

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

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