在PyTorch中计算精度、回归率、F1 score等指标的实例
在本文中,我们将介绍如何在PyTorch中计算精度、回归率、F1 score等指标。我们将使用两个示例来说明如何完成这些步骤。
示例1:计算分类问题的精度、召回率和F1 score
以下是在PyTorch中计算分类问题的精度、召回率和F1 score的步骤:
import torch
import torch.nn as nn
import torch.optim as optim
from sklearn.metrics import accuracy_score, recall_score, f1_score
# 定义模型
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.fc1 = nn.Linear(2, 1)
def forward(self, x):
x = self.fc1(x)
return x
model = Net()
# 定义损失函数和优化器
criterion = nn.BCEWithLogitsLoss()
optimizer = optim.SGD(model.parameters(), lr=0.1)
# 训练模型
for epoch in range(100):
running_loss = 0.0
for i, data in enumerate(train_dataset, 0):
inputs, labels = data
optimizer.zero_grad()
outputs = model(inputs)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()
running_loss += loss.item()
# 计算精度、召回率和F1 score
y_true = labels.numpy()
y_pred = torch.sigmoid(outputs).detach().numpy().round()
acc = accuracy_score(y_true, y_pred)
recall = recall_score(y_true, y_pred)
f1 = f1_score(y_true, y_pred)
print(f'Epoch {epoch + 1}, Loss: {running_loss:.2f}, Accuracy: {acc:.2f}, Recall: {recall:.2f}, F1 score: {f1:.2f}')
在上述代码中,我们定义了一个简单的全连接神经网络Net
,它含一个输入层和一个输出层。然后,我们创建了一个模型实例model
。我们还定义了损失函数criterion
和优化器optimizer
。在训练模型的过程中,我们使用accuracy_score
、recall_score
和f1_score
函数来计算精度、召回率和F1 score。
示例2:计算回归问题的平均绝对误差和均方根误差
以下是在PyTorch中计算回归问题的平均绝对误差和均方根误差的步骤:
import torch
import torch.nn as nn
import torch.optim as optim
from sklearn.metrics import mean_absolute_error, mean_squared_error
# 定义模型
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.fc1 = nn.Linear(2, 1)
def forward(self, x):
x = self.fc1(x)
return x
model = Net()
# 定义损失函数和优化器
criterion = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr=0.1)
# 训练模型
for epoch in range(100):
running_loss = 0.0
for i, data in enumerate(train_dataset, 0):
inputs, labels = data
optimizer.zero_grad()
outputs = model(inputs)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()
running_loss += loss.item()
# 计算平均绝对误差和均方根误差
y_true = labels.numpy()
y_pred = outputs.detach().numpy()
mae = mean_absolute_error(y_true, y_pred)
rmse = mean_squared_error(y_true, y_pred, squared=False)
print(f'Epoch {epoch + 1}, Loss: {running_loss:.2f}, MAE: {mae:.2f}, RMSE: {rmse:.2f}')
在上述代码中,我们定义了一个简单的全连接神经网络Net
,它含一个输入层和一个输出层。然后,我们创建了一个模型实例model
。我们还定义了损失函数criterion
和优化器optimizer
。在训练模型的过程中,我们使用mean_absolute_error
和mean_squared_error
函数来计算平均绝对误差和均方根误差。
结论
在本文中,我们介绍了如何在PyTorch中计算精度、回归率、F1 score等指标。我们使用了两个示例来说明如何完成这些步骤。如果您按照这些步骤操作,您应该能够成功计算这些指标并在训练模型时使用它们。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在pytorch 中计算精度、回归率、F1 score等指标的实例 - Python技术站