import torch import torch.nn as nn import torch.optim as optim # Initialize model, loss, and optimizer model = NeuralNetwork() criterion = nn.BCELoss() optimizer = optim.SGD(model.parameters(), lr=0.1) # Training loop epochs = 100 for epoch in range(epochs): # Forward pass predictions = model(X) loss = criterion(predictions, y) # Backward pass optimizer.zero_grad() # Clear previous gradients loss.backward() # Compute gradients optimizer.step() # Update parameters if epoch % 20 == 0: print(f"Epoch {epoch}, Loss: {loss.item():.4f}") __ __