在PyTorch中实现多分类预测有多种方法,以下是其中一种常见的方法:
准备数据:
torch.Tensor对象。定义模型:
nn.Module类创建一个自定义的神经网络模型。定义损失函数和优化器:
训练模型:
模型评估:
下面是一个简单的例子,展示了如何使用PyTorch实现多分类预测的步骤:
import torch import torch.nn as nn import torch.optim as optim # 准备数据 inputs = torch.tensor([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]]) labels = torch.tensor([0, 1, 2]) # 创建数据加载器 dataset = torch.utils.data.TensorDataset(inputs, labels) dataloader = torch.utils.data.DataLoader(dataset, batch_size=1, shuffle=True) # 定义模型 class Model(nn.Module): def __init__(self): super(Model, self).__init__() self.fc = nn.Linear(3, 3) def forward(self, x): x = self.fc(x) return x model = Model() # 定义损失函数和优化器 criterion = nn.CrossEntropyLoss() optimizer = optim.SGD(model.parameters(), lr=0.01) # 训练模型 for epoch in range(10): for inputs, labels in dataloader: optimizer.zero_grad() outputs = model(inputs) loss = criterion(outputs, labels) loss.backward() optimizer.step() # 模型评估 correct = 0 total = 0 with torch.no_grad(): for inputs, labels in dataloader: outputs = model(inputs) _, predicted = torch.max(outputs.data, 1) total += labels.size(0) correct += (predicted == labels).sum().item() accuracy = correct / total print("Accuracy: {:.2f}%".format(accuracy * 100)) 以上是一个简单的多分类预测的示例,具体的实现方式可以根据具体问题和数据集的特点进行调整。