PyTorch Neural Networks
Building neural networks with PyTorch.
Define Model
Create neural network class
class NeuralNet(nn.Module):
def __init__(self):
super().__init__()
self.fc1 = nn.Linear(784, 128)
self.fc2 = nn.Linear(128, 10)
def forward(self, x):
x = torch.relu(self.fc1(x))
x = self.fc2(x)
return x
model = NeuralNet().to(device)
Loss & Optimizer
Define loss function
criterion = nn.CrossEntropyLoss()
loss_mse = nn.MSELoss()
Define optimizer
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)
sgd = torch.optim.SGD(model.parameters(), lr=0.01)
Training Loop
Training loop
for epoch in range(num_epochs):
for batch_x, batch_y in train_loader:
batch_x = batch_x.to(device)
batch_y = batch_y.to(device)
// Forward pass
outputs = model(batch_x)
loss = criterion(outputs, batch_y)
// Backward pass
optimizer.zero_grad()
loss.backward()
optimizer.step()
print(f"Epoch {epoch}, Loss: {loss.item()}")
Save & Load Model
Save model
torch.save(model.state_dict(), "model.pth")
Load model
model = NeuralNet()
model.load_state_dict(torch.load("model.pth"))
model.eval()
Save entire model
torch.save(model, "entire_model.pth")
model = torch.load("entire_model.pth")