extractJacobian function

void extractJacobian(
  1. NeuralNetwork nn,
  2. List<List<double>> X
)

Implementation

void extractJacobian(NeuralNetwork nn, List<List<double>> X) {
  for (var x in X) {
    List<Node> inputs = [Node(x[0]), Node(x[1])];
    Node output = nn.forward(inputs);

    // Perform backward pass to calculate gradients and Jacobians
    output.backward();

    // Output the Jacobian of the final output with respect to inputs
    print('Jacobian for input $x:');
    for (int i = 0; i < output.jacobian!.length; i++) {
      print(output.jacobian![i]);
    }
  }
}