基于pytorch的一维数据的五分类混淆矩阵代码
时间: 2023-11-27 09:02:49 浏览: 31
以下是基于 PyTorch 的一维数据的五分类混淆矩阵代码示例:
```python
import torch
import numpy as np
# 假设有 100 个样本,每个样本的分类标签为 0, 1, 2, 3, 4 中的一个
y_true = torch.randint(low=0, high=5, size=(100,))
# 假设模型预测的分类为随机值,模拟混淆矩阵
y_pred = torch.randint(low=0, high=5, size=(100,))
# 计算混淆矩阵
confusion_matrix = torch.zeros(5, 5)
for i in range(len(y_true)):
confusion_matrix[y_true[i], y_pred[i]] += 1
# 输出混淆矩阵
print("Confusion Matrix:")
print(confusion_matrix)
```
该代码首先生成了 100 个随机标签的样本,以及一个随机预测的分类结果。然后,通过循环计算出混淆矩阵,并输出结果。
需要注意的是,该代码仅适用于一维数据的情况。对于多维数据,需要对每一个维度进行类似的计算。同时,该代码中假设分类标签为 0, 1, 2, 3, 4,如有需要,可以根据实际情况进行修改。
相关问题
基于pytorch的一维数据的五分类混淆矩阵以及各类别准确率代码
以下是基于 PyTorch 的一维数据的五分类混淆矩阵以及各类别准确率代码示例:
```python
import torch
import numpy as np
# 假设有 100 个样本,每个样本的分类标签为 0, 1, 2, 3, 4 中的一个
y_true = torch.randint(low=0, high=5, size=(100,))
# 假设模型预测的分类为随机值,模拟混淆矩阵
y_pred = torch.randint(low=0, high=5, size=(100,))
# 计算混淆矩阵
confusion_matrix = torch.zeros(5, 5)
for i in range(len(y_true)):
confusion_matrix[y_true[i], y_pred[i]] += 1
# 输出混淆矩阵
print("Confusion Matrix:")
print(confusion_matrix)
# 计算各类别准确率
class_accuracy = np.zeros(5)
for i in range(5):
class_accuracy[i] = confusion_matrix[i, i] / confusion_matrix[i].sum()
# 输出各类别准确率
print("Class Accuracy:")
print(class_accuracy)
```
该代码首先生成了 100 个随机标签的样本,以及一个随机预测的分类结果。然后,通过循环计算出混淆矩阵,并输出结果。接着,计算每个类别的准确率,并输出结果。
需要注意的是,该代码仅适用于一维数据的情况。对于多维数据,需要对每一个维度进行类似的计算。同时,该代码中假设分类标签为 0, 1, 2, 3, 4,如有需要,可以根据实际情况进行修改。
基于pytorch针对图像数据集五分类的混淆矩阵代码
以下是基于PyTorch针对图像数据集五分类的混淆矩阵代码,供参考:
```python
import torch
import numpy as np
from sklearn.metrics import confusion_matrix
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
# 定义模型和数据加载器
model = YourModel().to(device)
test_loader = YourDataLoader()
# 测试模式
model.eval()
# 定义预测结果和真实标签
preds = []
labels = []
# 对测试数据进行预测
with torch.no_grad():
for inputs, targets in test_loader:
inputs, targets = inputs.to(device), targets.to(device)
outputs = model(inputs)
_, predicted = torch.max(outputs.data, 1)
preds.extend(predicted.cpu().numpy())
labels.extend(targets.cpu().numpy())
# 计算混淆矩阵
conf_matrix = confusion_matrix(labels, preds)
print(conf_matrix)
```
在上述代码中,需要替换以下内容:
- `YourModel()`:替换为你的模型;
- `YourDataLoader()`:替换为你的数据加载器。
在运行代码之前,需要确保已经安装了`scikit-learn`库。运行代码后,将输出混淆矩阵。