使用PyTorch来训练模型。首先,需要定义一个数据加载器,然后使用PyTorch的内置优化器和损失函数来训练模型。以下是一个简单的示例代码,用于训练模型:
import torch
import torch.nn as nn
import torch.optim as optim
from torch.utils.data import DataLoader
from torchvision.datasets import MNIST
from torchvision.transforms import ToTensor

class My_Model(nn.Module):
    def __init__(self):
        super().__init__()
        self.l1 = nn.Linear(28* 28, 10)

    def forward(self, x):
        return torch.relu(self.l1(x.view(x.size(0), -1)))

    def training_step(self, batch, batch_idx):
        x, y = batch
        y_hat = self(x)
        loss = nn.functional.cross_entropy(y_hat, y)
        self.log("train_loss", loss)
        return loss

model = My_Model()
optimizer = optim.Adam(model.parameters(), lr=1e-3)
train_loader = DataLoader(MNIST(download=True, root="./data", transform=ToTensor()), batch_size=32)

for epoch in range(10):
    for batch in train_loader:
        optimizer.zero_grad()
        loss = model.training_step(batch, 0)
        loss.backward()
        optimizer.step()
 

这个代码片段中,我们首先定义了一个数据加载器,然后定义了一个My_Model类,它继承自nn.Module类。在这个类中,我们定义了一个输入层、一个输出层和一个隐藏层。然后我们定义了一个training_step()方法,用于计算损失并返回损失值。在训练过程中,我们使用Adam优化器来更新模型参数。

04-11 10:08