在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))
以上是一個簡單的多分類預測的示例,具體的實現方式可以根據具體問題和數據集的特點進行調整。