This program trains a simple linear model on random data for 3 epochs. It prints the average loss after each epoch to show learning progress.
import torch
import torch.nn as nn
import torch.optim as optim
from torch.utils.data import DataLoader, TensorDataset
# Simple dataset: inputs and labels
inputs = torch.randn(100, 3)
labels = torch.randn(100, 1)
dataset = TensorDataset(inputs, labels)
train_loader = DataLoader(dataset, batch_size=10)
# Simple model: one linear layer
model = nn.Linear(3, 1)
# Loss function and optimizer
criterion = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr=0.1)
num_epochs = 3
for epoch in range(num_epochs):
total_loss = 0
for batch_inputs, batch_labels in train_loader:
optimizer.zero_grad()
outputs = model(batch_inputs)
loss = criterion(outputs, batch_labels)
loss.backward()
optimizer.step()
total_loss += loss.item()
avg_loss = total_loss / len(train_loader)
print(f"Epoch {epoch+1}, Loss: {avg_loss:.4f}")