main function

void main()

Implementation

void main() {
  // 1. Setup Network (2 inputs, 4 hidden, 1 output)
  final model = MLP(2, [4, 1]);
  final double learningRate = 0.01;

  // 2. Mock Data (XOR-ish problem)
  final x = Tensor([4, 2]);
  x.data.setAll(0, [0, 0, 0, 1, 1, 0, 1, 1]);

  final target = Tensor([4, 1]);
  target.data.setAll(0, [0, 1, 1, 0]);

  // 3. Training Loop
  for (int epoch = 0; epoch < 100; epoch++) {
    // Forward
    final pred = model.forward(x);
    final loss = pred.mseLoss(target);

    // Backward
    model.zeroGrad();
    loss.backward();

    // Update (SGD Step)
    for (var p in model.parameters()) {
      for (int i = 0; i < p.length; i++) {
        p.data[i] -= learningRate * p.grad[i];
      }
    }

    if (epoch % 10 == 0) print("Epoch $epoch, Loss: ${loss.data[0]}");
  }
}