verifySoftmax function

void verifySoftmax()

Implementation

void verifySoftmax() {
  // 1 row, 3 classes
  final x = Tensor.fromList([1, 3], [1.0, 2.0, 3.0]);

  // Softmax forward check
  final y = x.softmax();
  final data = y.data;

  // Expected values for [1, 2, 3]: [0.0900, 0.2447, 0.6652]
  bool forwardOk = closeEnough(data[0], 0.0900) && closeEnough(data[2], 0.6652);

  // Gradient Check: d(sum(softmax(x)))/dx should be 0.0
  final loss = y.sum();
  loss.backward();
  final grads = x.grad;

  bool gradOk = grads.every((g) => closeEnough(g, 0.0, 1e-5));
  print(
    "SOFTMAX: ${forwardOk && gradOk ? '✅ PASS' : '❌ FAIL (Grads should be 0, got $grads)'}",
  );
}