Skip to content

Conversation

@TeddyCr
Copy link

@TeddyCr TeddyCr commented Nov 17, 2025

Summary

  • Add simple test case for MLP to improve reasoning about the implementation

  • Fix single neuron output handling in MLP implementation

  • Expand .gitignore with standard Python patterns from GitHub repo.

    Changes

    Testing improvements:

    • Added test/test_nn.py with a simple MLP test that validates both forward and backward passes with known expected values
    • Test uses a 1 hidden layer network with a single neuron (1 → 1 → 1) with manually set weights and biases to verify gradient computation
      [This helped me resonate a bit better about the code implementation -- thought it could help others.]

    Bug fix:

    • Fixed output handling for single-neuron MLPs by moving the list unwrapping logic from Layer.__call__() to MLP.__call__()
      [I believe layer(x) should always return a list[Value] based on the expected inout in Neuron activation computation (zip(w, v)).]

    Housekeeping:

layer return Value instead of a list so a single neuron in the
hidden layer pass a value while the Neuron expected a
list[Value] (line 21)
@TeddyCr TeddyCr closed this Dec 22, 2025
@TeddyCr TeddyCr reopened this Dec 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant