77 Commits

Author SHA1 Message Date
Vijay Janapa Reddi
fd9fea0e90 fix(tinytorch): repair release regressions 2026-06-02 13:40:09 -04:00
Vijay Janapa Reddi
bcd5483813 docs(tinytorch): refresh release narrative 2026-06-02 13:39:45 -04:00
Vijay Janapa Reddi
99249d00b3 fix(tinytorch): restore seeded Linear init, scope unseeding to perceptron demo
#1617 unseeded the module-level rng in tinytorch/src/03_layers/03_layers.py
to make the perceptron milestone produce different weights on every run.
But Linear.__init__ reads weight init from that rng, so the change made
Linear init nondeterministic across the entire codebase. The integration
test tests/integration/test_training_flow.py::test_deep_network_gradient_chain
specifically depends on Linear having stable init; empirical sweep over
5000 random draws shows the test fails 27.5% of the time under unseeded
init, which is why the Windows CI run failed in #1617.

Restore the seed=7 default in 03_layers.py and instead rebind layers.rng
to an unseeded RNG locally inside the perceptron milestone, mirroring
the pattern already used by the XOR milestone (#1618). This keeps the
perceptron's "different weights every run" promise without breaking
unrelated tests.
2026-05-01 13:18:43 -04:00
Vijay Janapa Reddi
6183529864 Merge branch 'dev' into fix/milestone3-xor 2026-04-30 19:04:37 -04:00
Vijay Janapa Reddi
81d299d529 fix(tinytorch): gate XOR success messages on actual convergence
Milestone 3 (XOR Solved) was unconditionally announcing
' Training Complete - XOR Solved!' and a green '🎉 Success! You Ended
the AI Winter!' panel showing 'Final accuracy: 75.0% (Perfect XOR
solution!)' even when the network was stuck at the classic 75%
dead-ReLU saddle point and had clearly not solved XOR.

Gate both messages on a 0.95 convergence threshold:
  - On convergence: keep the existing celebration panel.
  - Below threshold: show a yellow warning that training did not
    converge, explain the dead-ReLU saddle-point symptom, and tell
    the student to re-run the milestone or use a larger hidden
    layer instead of moving on to Milestone 03 on a broken result.

Relates to #1613
2026-04-30 18:37:58 -04:00
Vijay Janapa Reddi
1aaf779070 fix(tinytorch): re-seed layers RNG so XOR milestone converges to 100%
The migration from np.random.seed() to default_rng() (commit d30257577c)
inadvertently broke the XOR convergence guarantee in milestone 3 (XOR
Solved). The intended seeding line became dead code:

    rng = np.random.default_rng(7)  # local var, never used

The active weight-init RNG lives at tinytorch.core.layers.rng. With its
default seed (7), the 4-unit hidden layer initializes into a dead-ReLU
saddle point: training stalls at 75% accuracy (one XOR case stuck at
p~=0.5) regardless of how long it runs.

Re-seed tinytorch.core.layers.rng to 1986 (the year of the backprop
paper) immediately before building the model. This restores deterministic
100% convergence in 500 epochs while preserving the original
hidden_size=4 pedagogy and all surrounding educational text.

Verified: before -> 75.0% test accuracy, after -> 100.0% test accuracy.

Relates to #1614
2026-04-30 18:36:38 -04:00
Vijay Janapa Reddi
6220345038 fix(tinytorch): perceptron weights deterministic across runs (#1611)
The module-level `rng = np.random.default_rng(7)` at the top of
`src/03_layers/03_layers.py` was reused for every `Linear(...)` weight
init, so every run produced identical weights. Milestone 1's UI text
("No random seed - each run will be different!") contradicted this, and
the issue reporter rightly expected weights to vary.

Drop the seed in two places:

- `src/03_layers/03_layers.py`: the module-level `rng` is now unseeded.
  Local seeded RNGs inside test/demo blocks (around lines 829, 848, 981)
  are unchanged - those want determinism for reproducible self-tests.
- `milestones/01_1958_perceptron/01_rosenblatt_forward.py`: the data-gen
  RNG is also unseeded so the cluster points vary too, matching the
  on-screen claim.

Verified by running the milestone twice: cluster positions, predictions,
and accuracy now differ between runs (e.g., 100% "got lucky" vs 0%
"random guessing"). `Linear(...)` weights also differ across fresh
constructions within a single run.

Relates to #1611
2026-04-30 18:35:50 -04:00
Vijay Janapa Reddi
706c74bf08 Merge branch 'feat/tinytorch-milestone-chapters' into dev
Bring the historical milestones into the Lab Guide as native Quarto
chapters, interleaved between the tier Parts so each milestone unlocks
right after the modules that power it. The seven legacy mystnb ABOUT.md
files under tinytorch/milestones/ are removed; their narrative content
now lives at tinytorch/quarto/milestones/ and is wired into both the
PDF book TOC and the website sidebar/navbar.

Verified locally: PDF builds (330 pages, all six milestones present at
expected positions, callouts render correctly), full website renders,
pre-commit run --all-files passes.
2026-04-22 16:09:41 -04:00
Vijay Janapa Reddi
1760684711 feat(tinytorch): port milestones into Lab Guide as native Quarto chapters
The 7 tinytorch/milestones/*/ABOUT.md files contained unique narrative
content (historical context, "aha moment" stories, prerequisite tables,
runnable instructions) but were stranded after the Jupyter Book retirement
— mystnb format, no Quarto renderer, no entry in any TOC.

Port them into the Lab Guide so the historical recreations finally have a
canonical home that ships with the book PDF and the website.

Layout (Option A — interleaved between tiers):
  • Foundation Tier    (Modules 01–08)
  • Foundation Milestones    (1958 Perceptron · 1969 XOR · 1986 MLP)
  • Architecture Tier  (Modules 09–13)
  • Architecture Milestones  (1998 CNN · 2017 Transformers)
  • Optimization Tier  (Modules 14–19)
  • Optimization Milestones  (2018 MLPerf)
  • Capstone           (Module 20)

Each milestone unlocks immediately after the modules that power it,
matching the "your code recreates history" pedagogy.

Conversion notes:
  • mystnb {tip} blocks → :::{.callout-tip title="…"}
  • mystnb admonitions  → :::{.callout-note title="…"}
  • Added a "Milestone Info" callout per chapter (tier · difficulty ·
    time · prerequisites) to mirror the "Module Info" header used by the
    module chapters.
  • milestones/ABOUT.md became milestones/index.qmd (Part overview) so
    the new "Foundation Milestones" Part starts with a landing page that
    summarises all six milestones.

Wiring:
  • tinytorch/quarto/pdf/_quarto.yml — three new Parts interleaved
    between the existing tier Parts; comment explains the placement rule.
  • tinytorch/quarto/_quarto.yml — sidebar gets three new sections
    ("🕰️ Foundation Milestones", etc.) and the navbar gains a top-level
    "Historical Milestones" link to the new index.
  • tito/milestones.qmd is unchanged: it documents the `tito milestone`
    CLI (separate purpose from the new narrative chapters).

Verification:
  • make pdf produces TinyTorch-Guide.pdf at 330 pages with all six
    milestones at the expected logical positions; confirmed visually
    that the "Milestone Info" + "What You'll Learn" callouts render
    with proper Quarto styling.
  • quarto render produces 7 new pages under _build/milestones/.
  • pre-commit run passes (incl. the internal-link validator).
2026-04-22 16:09:18 -04:00
Vijay Janapa Reddi
b9ee88ca70 docs(readmes): stretch HTML tables to full width
Add `width="100%"` to every HTML content and contributor table across all
project READMEs so they render full-width on GitHub instead of collapsing
to natural content width. Cell-level `width="X%"` percentages were already
in place but only take effect once the table itself has an explicit width.

Also update the contributor-sync scripts so the auto-generated tables stay
consistent on the next bot run:
  - .github/workflows/contributors/generate_main_readme.py
  - .github/workflows/contributors/generate_readme_tables.py

Scope: 27 files, 85 tables. Sub-project READMEs that already use the
"card" pattern (labs/, kits/ content sections with <table width="98%">
wrappers) are intentionally untouched.
2026-04-22 16:01:54 -04:00
Vijay Janapa Reddi
fe50b96782 refactor(tinytorch): bump Python minimum to 3.10 and update Milestone 05 docs
- Update Python version requirement from 3.8+ to 3.10+ across badges,
  docs, tests, and setup validation
- Rewrite Milestone 05 docs to reflect single synthetic-task script
  (01_vaswani_attention.py) replacing old 3-script approach
- Fix repository URLs from placeholder VJ/TinyTorch to
  harvard-edge/cs249r_book
- Update contact email to info@mlsysbook.ai

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 12:51:48 -04:00
Vijay Janapa Reddi
d30257577c refactor(tinytorch): migrate from legacy np.random to default_rng(7)
Replace np.random.randn/rand/seed with np.random.default_rng(7) across
all 93 source modules, tests, and milestones for reproducible, isolated
random state.
2026-04-03 17:57:51 -04:00
Vijay Janapa Reddi
a66f2c66a6 fix(tinytorch): fix MaxPool2d API mismatch in milestone 04 CIFAR script (#1278)
- Fix pool_size=(2,2) → kernel_size=2, stride=2 in 02_lecun_cifar10.py
- Normalize all Conv2D/MaxPool2D/BatchNorm2D references to lowercase d
  (Conv2d, MaxPool2d, BatchNorm2d) across comments, strings, and ASCII art
- Fix Conv2d error string in 09_convolutions.py source module
- Delete milestones/extras/ directory (drifted copies, 2 placeholders,
  1 broken script — maintenance liability that caused the duplicate bug)
- Add test_milestones_smoke.py: 19 lightweight tests that import every
  milestone script and construct every model class in 0.07s, catching
  API drift without data downloads
2026-03-24 17:24:14 -04:00
Vijay Janapa Reddi
aadaf5b13a docs: convert all README markdown tables to HTML format
Standardize table formatting across 25 README files to use
HTML tables with consistent styling (thead/tbody, column widths,
bold labels) matching the main README's presentation.
2026-03-17 08:57:21 -04:00
Vijay Janapa Reddi
ba13101e89 docs: polish README, SVGs, and component docs across curriculum
Refresh top-level README with clearer volume naming, HTML branch
table, and consolidated support section. Replace ASCII art with
SVG diagrams in tinytorch milestones and labs. Streamline slides
and kits READMEs. Remove retired challenges/ directory.
2026-03-17 05:42:41 -04:00
Vijay Janapa Reddi
ab697a84f2 refactor(milestones): use stdlib tar filter='data' for safe CIFAR-10 extraction 2026-02-22 13:40:09 -05:00
RinZ27
7d2cd5a47d Improve robustness of dataset extraction by validating paths 2026-02-19 22:57:20 +07:00
Vijay Janapa Reddi
09de699545 fix(exports): add missing #| export directives across 10 modules
Systematic audit of all 20 modules against module-developer agent rules
found 9 standalone helper functions missing #| export — these are called
by exported code at runtime but were excluded from the generated package,
causing NameError/AttributeError in CI.

Modules fixed:
- 05_dataloader: _pad_image, _random_crop_region (used by RandomCrop)
- 06_autograd: _stable_softmax, _one_hot_encode (prior session)
- 07_optimizers: 5 mixin classes + monkey-patches (prior session)
- 08_training: 7 monkey-patched Trainer methods (prior session)
- 10_tokenization: _count_byte_pairs, _merge_pair (used by BPETokenizer)
- 11_embeddings: _compute_sinusoidal_table (prior session)
- 12_attention: _compute_attention_scores, _scale_scores, _apply_mask (prior)
- 15_quantization: _collect_layer_inputs, _quantize_single_layer (used by quantize_model)
- 18_memoization: _cached_generation_step, _create_cache_storage, _cached_attention_forward (used by enable_kv_cache)
- 19_benchmarking: rename TinyMLPerf→MLPerf, fix monkey-patch naming (prior)

Also includes: vscode-ext icon refactor (ThemeIcon migration).

All 789 tests pass (unit, integration, e2e, CLI).
2026-02-15 17:38:03 -05:00
AndreaMattiaGaravagno
668a50af87 feat: add step-by-step visualization to milestones 2026-02-03 19:42:21 +01:00
Vijay Janapa Reddi
2007029aa2 fix(milestone): pass Tensor class to step functions that need it
Fixed NameError in step_1_profile and step_5_accelerate by adding
Tensor as a parameter. These functions create sample tensors for
profiling/testing but the Tensor class is imported in main(), so
they need it passed as an argument.
2026-01-28 19:14:28 -05:00
Vijay Janapa Reddi
0b119bf666 refactor(milestone): extract MLPerf steps into separate functions
Break the 600-line main() into clean, documented step functions:
- CONFIG dict for shared settings
- step_1_profile() - Measure baseline with Profiler
- step_2_quantize() - FP32→INT8 with Quantizer
- step_3_prune() - Magnitude pruning with Compressor
- step_4_kv_cache() - Transformer generation speedup
- step_5_accelerate() - Vectorized operations demo
- step_6_benchmark() - Scientific benchmarking
- print_final_results() - Summary table

Each function has detailed docstrings with ASCII diagrams
explaining what the optimization technique does.
2026-01-28 18:57:31 -05:00
Vijay Janapa Reddi
a3b3c77f1a docs(milestone): add ASCII attention pattern diagrams to docstrings
Each challenge function now has visual documentation showing:
- The task input/output example
- The ideal attention weight matrix pattern
- Why the pattern is required for the task

Challenge 3 also explains why a fresh model is needed
(sequential training causes "catastrophic forgetting").
2026-01-28 18:41:33 -05:00
Vijay Janapa Reddi
b8f68510fd refactor(milestone): extract challenges into separate functions
Break the monolithic main() into clean, documented functions:
- CONFIG dict for shared hyperparameters
- build_model() for creating fresh model/optimizer/loss
- challenge_1_reversal() - anti-diagonal attention patterns
- challenge_2_copying() - diagonal attention patterns
- challenge_3_mixed() - prefix-conditioned behavior (fresh model)
- print_final_results() - summary table and messages

This makes the code much easier for students to understand
and clearly shows why challenge 3 needs a fresh model.
2026-01-28 18:38:35 -05:00
Vijay Janapa Reddi
bcbcbf7f3d fix(milestone): reset model before mixed task challenge
The transformer was being trained sequentially on reversal then copying,
which caused it to "forget" reversal before the mixed task. Now we
reinitialize the model before challenge 3 so it learns both tasks
together with proper prefix conditioning.
2026-01-28 18:36:16 -05:00
Vijay Janapa Reddi
9e73f389a5 docs: fix milestone requirements to match implementation
Updates milestone documentation across all site files to match the
actual MILESTONE_SCRIPTS configuration in tito/commands/milestone.py:

- Milestone 01 (Perceptron): requires modules 01-03 (not 01-04)
- Milestone 02 (XOR Crisis): requires modules 01-03 (not 01-02)
- Milestone 05 (Transformers): requires 01-08 + 11-13 (not 01-13)
- Milestone 06 (MLPerf): requires 01-08 + 14-19 (not 01-19)

Also fixes broken link to chapters/milestones.html (directory does not
exist) and corrects path to student notebooks.
2026-01-25 15:33:59 -05:00
Vijay Janapa Reddi
26a362ec2d style(milestones): minor formatting fixes in milestone files
- Fixed ASCII art alignment in xor_crisis.py
- Fixed table alignment in rumelhart_tinydigits.py
- Fixed table alignment in generation_speedup.py
2026-01-24 19:04:22 -05:00
Vijay Janapa Reddi
186615c18a fix(tinytorch): fix test ordering and non-interactive mode issues
Bug fixes:
- Move test_autograd_core.py from 05_dataloader/ to 06_autograd/ (fixes #1127)
- Fix integration test mapping: tests now only run after their dependencies
  are available (module 4 loss tests moved to module 7+)
- Remove premature test_unit_function_classes() call in 06_autograd.py
  that ran before enable_autograd() (fixes #1128)
- Handle EOFError in milestone prompts for non-interactive mode (fixes #1129)

Improvements:
- Read version from pyproject.toml as single source of truth
- Add try/except for sync prompt in milestone completion

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 12:17:32 -05:00
Vijay Janapa Reddi
871d1f473a docs: complete Perceptron 1958 standardization and add tito dev CLI docs
- Update remaining 1957→1958 references across all documentation
- Add tito dev commands (preflight, export, validate) to CLI reference
- Update CLI validation script to recognize new dev subcommands
- Fix milestone year references in tests and workflow code
- Update timeline visualization JavaScript

This completes the Perceptron year standardization to align with
the publication year and academic citation format (rosenblatt1958perceptron).

Cherry-picked from: ebf3fb17b (feature/tito-dev-validate)
2026-01-17 12:18:23 -05:00
Vijay Janapa Reddi
dbad2637e3 fix(docs): standardize Perceptron year to 1958
- Rename milestone directory from 01_1957_perceptron to 01_1958_perceptron
- Update all references to use 1958 (publication year) for consistency
  with academic citation format (rosenblatt1958perceptron)
- Changes affect: READMEs, docs, tests, milestone tracker

Rationale: Using 1958 aligns with the publication year and standard
academic citations, while 1957 was the development year.

Cherry-picked from: 28ca41582 (feature/tito-dev-validate)
2026-01-17 12:15:49 -05:00
Vijay Janapa Reddi
c420fe7858 chore(tinytorch): bump version to v0.1.4
TinyTorch v0.1.4: Educational improvements and module path fixes

Breaking Changes:
- fix: correct module path from core.transformer to core.transformers (14 files)

Educational Enhancements:
- refactor: remove premature backward() methods for cleaner progressive learning
- feat: add educational scaffolding with TODO/hints in Module 20 Capstone
- docs: remove forward references to Module 06 in early modules

Bug Fixes:
- fix: TransformerBlock now supports ff_dim parameter for flexibility
- fix: wrap module print statements in if __name__ guards

Code Quality:
- refactor: reorganize Quantizer class export location
- refactor: improve module integration in tinytorch.__init__.py
- chore: remove outdated TINYTORCH_FORMATTING_STANDARDS.md (415 lines)

Stats: 29 files changed, 357 insertions(+), 711 deletions(-)
2026-01-17 10:25:59 -05:00
Vijay Janapa Reddi
04b2c3fdee docs: use code block for module status check command 2025-12-21 18:33:41 -05:00
Vijay Janapa Reddi
97b818a0ea docs: add prerequisite check reminder before milestone commands 2025-12-21 18:32:41 -05:00
Vijay Janapa Reddi
e6ae0e3a0a docs: use Jupyter Book tip directive syntax for callouts 2025-12-21 18:29:47 -05:00
Vijay Janapa Reddi
a72a9b394d docs: remove redundant Before You Begin callouts from milestones 2025-12-21 18:25:45 -05:00
Vijay Janapa Reddi
03e7ecf7a3 docs: change learning objectives callout from note to tip 2025-12-21 18:25:05 -05:00
Vijay Janapa Reddi
b83bb4e9e0 docs: replace milestone callouts with learning objectives
Change callout boxes from "Milestone Info" (prerequisites) to
"What You'll Learn" (learning objectives) for better pedagogical value.

Each milestone now clearly states:
- M01: Training loop fundamentals, gradient descent
- M02: Why depth matters, non-linear boundaries
- M03: Representation learning, automatic features
- M04: Spatial structure, weight sharing
- M05: Attention mechanism, long-range dependencies
- M06: Systematic optimization workflow
2025-12-21 18:24:13 -05:00
Vijay Janapa Reddi
ba1bb4a79c docs: standardize Architecture and Optimization tier milestone ABOUT files
- Add callout boxes for milestone info and prerequisites
- Standardize section naming and ordering
- Add "YOUR Code Powers This" tables
- Fix tito commands to use proper module status checks
- Merge redundant sections (What Part 2 Proves, duplicate Historical Context)
2025-12-21 18:12:54 -05:00
Vijay Janapa Reddi
998fa80eb1 docs: standardize Foundation tier milestone ABOUT files
- Add callout boxes for milestone info and prerequisites
- Standardize section naming (The Aha Moment)
- Add "YOUR Code Powers This" tables
- Fix tito commands to use proper module status checks
- Merge redundant sections for cleaner narrative flow
2025-12-21 18:12:42 -05:00
Vijay Janapa Reddi
575f31f702 fix(milestones): guarantee XOR convergence and fix data terminology
- Add np.random.seed(1986) before XOR model init to guarantee 100% accuracy
- Replace 'REAL data' with accurate terminology ('TinyDigits', 'synthetic')
- XOR solved milestone now consistently achieves 100% (was 75-100% random)
2025-12-20 12:00:41 -05:00
Vijay Janapa Reddi
c89fb020e4 fix: update remaining module references in documentation
Fixed module number references in:
- INSTRUCTOR.md: course schedule table
- Site: credits.md, tito/data.md module status display
- Source ABOUT.md: 02_activations, 03_layers forward references
- Milestones: 01_perceptron, 03_mlp prerequisite tables
- modules/EDUCATION_REVIEW_ACTION_PLAN.md: module checklist
2025-12-19 20:19:55 -05:00
Vijay Janapa Reddi
fbc176e7ed fix: comprehensive module numbering update across all files
Updates all remaining files with correct module assignments:
- DataLoader = 05, Autograd = 06, Optimizers = 07, Training = 08
- Foundation Tier = 01-08, Architecture Tier = 09-13

Fixed files:
- Paper diagrams: module_flow.dot, module_flow_horizontal.tex
- Paper references: paper.tex (multiple instances)
- Site TITO: milestones.md command examples
- Tests: run_training_milestone_tests.py, test_user_journey.py, test_training_flow.py
- Milestones: 02_xor_solved.py, 02_rosenblatt_trained.py, 02_rumelhart_mnist.py, XOR ABOUT.md
- Source: 17_acceleration.py prerequisites
- Tools: fix_mermaid_diagrams.py, fix_about_titles.py module mappings
2025-12-19 20:17:52 -05:00
Vijay Janapa Reddi
0d076aee26 fix: update tier boundaries across all documentation
Comprehensive update to reflect correct module assignments:
- Foundation Tier: 01-08 (was incorrectly 01-07 in many places)
- Architecture Tier: 09-13 (was incorrectly 08-13 in many places)

Updated files:
- Site pages: intro.md, big-picture.md, getting-started.md
- Tier docs: olympics.md, optimization.md
- TITO docs: milestones.md
- Source ABOUT.md: 09, 10, 11, 12, 13, 14, 16
- Paper diagrams: module_flow.dot, module_flow_horizontal.tex
- Milestones: README.md, 02_1969_xor/ABOUT.md
- Tests: integration/README.md
- CLI: tito/commands/module/test.py
2025-12-19 20:12:24 -05:00
Vijay Janapa Reddi
3e17df64ba docs: update milestones for acceleration/memoization reorder 2025-12-19 19:30:42 -05:00
Vijay Janapa Reddi
8c76beb166 fix: resolve test import issues and transformer indentation
Test fixes:
- test_dataloader_integration.py: Fix import path (tinytorch.data → tinytorch.core)
- integration_mnist_test.py: Fix Linear import (was aliased but used wrong name)
- test_module_05_dense.py: Fix Dense vs Linear usage (was using wrong variable name)

Milestone fix:
- 01_vaswani_attention.py: Fix indentation in train_epoch function
2025-12-19 18:23:58 -05:00
Vijay Janapa Reddi
13e97b51bd fix: correct XOR milestone module requirements
- Changed 'Run after Module 07' to 'Run after Module 08' (Training)
- Added note that Module 05 (DataLoader) is intentionally skipped
  for XOR since it only has 4 data points (no batching needed)
2025-12-19 18:10:56 -05:00
Vijay Janapa Reddi
d203fba8b8 fix: complete module renumbering across entire codebase
Updated all references to reflect new module order:
- Module 05: DataLoader (was 08)
- Module 06: Autograd (was 05)
- Module 07: Optimizers (was 06)
- Module 08: Training (was 07)

Changes include:
- paper/paper.tex: 20+ references, tier descriptions, milestones
- src/: Export commands, dependency diagrams, docstrings
- tests/: Dependency chains, integration tests, README
- tito/: export_utils.py path mappings
- tinytorch/: Auto-generated package file headers

Foundation Tier is now Modules 01-08
Architecture Tier is now Modules 09-13
2025-12-19 17:43:41 -05:00
Vijay Janapa Reddi
b3eb1aa90a feat(tinytorch): add DataLoader to transformer milestone
Update Milestone 05 (Transformer) to use DataLoader for batched training:
- Add SequenceDataset class using YOUR Dataset interface
- Update train_epoch to iterate through DataLoader batches
- Update run_challenge to create DataLoaders with configurable batch_size
- Update module requirements to include Module 05 (DataLoader)

This makes DataLoader usage consistent across all milestones from
Module 03 (MLP) onwards, reinforcing the batching pattern.
2025-12-19 10:44:47 -05:00
Vijay Janapa Reddi
b79c6bca3c docs(tinytorch): update extras milestone files for module reordering
Update module references in extras milestone scripts to match
the new module numbering where DataLoader is Module 05.
2025-12-18 13:25:18 -05:00
Vijay Janapa Reddi
c3ba4aa640 docs(tinytorch): update milestone docs for DataLoader module reordering
Update all milestone documentation to reflect the new module numbering:
- DataLoader: Module 08 → Module 05
- Autograd: Module 05 → Module 06
- Optimizers: Module 06 → Module 07
- Training: Module 07 → Module 08

Files updated:
- milestones/01_1957_perceptron/ABOUT.md and README.md
- milestones/02_1969_xor/README.md
- milestones/03_1986_mlp/01_rumelhart_tinydigits.py, ABOUT.md, README.md
- milestones/04_1998_cnn/01_lecun_tinydigits.py, 02_lecun_cifar10.py, README.md
- milestones/05_2017_transformer/ABOUT.md, README.md
- milestones/ABOUT.md

Addresses #issue-dataloader-reorder
2025-12-18 13:23:59 -05:00
Vijay Janapa Reddi
86630479d1 refactor: fix imports and module references for progressive disclosure 2025-12-17 19:30:58 -05:00