Skip to content

Chore/simple nn test#111

Open
TeddyCr wants to merge 3 commits intokarpathy:masterfrom
TeddyCr:chore/simple-nn-test
Open

Chore/simple nn test#111
TeddyCr wants to merge 3 commits intokarpathy:masterfrom
TeddyCr:chore/simple-nn-test

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
IgorTavcar added a commit to IgorTavcar/micrograd that referenced this pull request Mar 5, 2026
- Simplify backward pass: replace _backward closures with _local_grads tuples (from karpathy#115)
- Zero grads before backward for idempotent backward() calls (from karpathy#102)
- Add exp, log, tanh, softmax to Value class
- Add transformer components: Linear, Embedding, LayerNorm, Attention,
  MultiHeadAttention, FeedForward, TransformerBlock, Transformer, cross_entropy
- Move single-output unwrapping from Layer to MLP (from karpathy#111)
- Add input shape assertion in Neuron (from karpathy#107)
- Add MLP test (from karpathy#111)
- Expand .gitignore with standard Python patterns

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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