The directory check was looking for tinytorch/tinytorch/__init__.py
when running from the tinytorch directory (as CI does). Fixed to check
for either repo root or tinytorch project directory structure.
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.
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").
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.
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.
- Skip "sync to profile" prompt when not in interactive terminal
(was hanging in CI waiting for input that never comes)
- Increase milestone timeout from 180s to 300s for heavy milestones
(CNN and Transformer training can take 2-3 minutes on CI)
Bug Fix:
- Export failures now return early in module complete, preventing
progress from being updated when export fails. This fixes the issue
where students could start Module 02 even though tensor.py was
never exported.
New --user-journey test:
- Simulates exact student flow: module start --no-jupyter → module complete
- Runs milestones at natural unlock checkpoints (not all at end)
- Milestone checkpoints: after modules 03, 08, 09, 13, 19
- Explicit step-by-step output for easy CI debugging
New --no-jupyter flag:
- Added to 'tito module start' for CI/testing
- Creates notebook but skips opening Jupyter
Ref: https://github.com/harvard-edge/cs249r_book/discussions/1147
- Name the problem: "algorithm-systems divide"
- Name the approach: "implementation-based systems pedagogy"
- Add concrete systems examples (O(N^2), Adam 3x memory)
- Include MLPerf-style benchmarking in milestones
- Strengthen citable terminology throughout
Improvements based on PR #1105 by @rnjema:
- Add get_platform() function for OS detection
- Use $PYTHON_CMD -m pip for more reliable pip invocation
- Show Windows-specific guidance during installation
- Add text=auto to .gitattributes for cross-platform line endings
Closes#1078
Co-authored-by: rnjema <rnjema@users.noreply.github.com>
- Convolution: Position(1,1) result 8→7, final output corrected
- Pooling: Fix element lists and average values for bottom windows
- Matrix multiplication: Fix docstring results 13→16, 37→49
- Neural network layer: Fix matmul results in forward pass example
Fixesharvard-edge/cs249r_book#1144
- Remove @ngbolin from book/.all-contributorsrc (incorrectly added)
- Keep @ngbolin in tinytorch/.all-contributorsrc with 'doc' type
- Regenerate README tables
- Add configuration block at top for easy customization
- Fix project detection to check trigger line first (not just issue context)
- Improve LLM prompt with explicit JSON schema and examples
- Add project aliases support (e.g., 'tito' -> 'tinytorch')
- Fix @ngbolin contribution type (test -> doc)
Position (1,1) with region [[6,7],[0,1]] and kernel [[1,0],[0,1]]
correctly computes to 6×1 + 7×0 + 0×0 + 1×1 = 7, not 8.
Fixesharvard-edge/cs249r_book#1144
- Switch from fontspec/TeX Gyre to standard fonts (mathpazo, helvet, courier)
- Replace emoji package with no-op (title is just "TinyTorch")
- Switch from biblatex/biber to natbib/bibtex
- Works with both lualatex (local) and pdflatex (arXiv)
- Acknowledge CS249r students whose feedback shaped the curriculum
- Acknowledge global mlsysbook.ai community
- Expand GenAI statement to cover framework development
- Frame AI assistance as enabling democratization (single author, 20 modules)
- Remove em-dashes throughout for cleaner prose
Reverts arXiv-specific changes to work with compile_paper.sh:
- Restored fontspec with TeX Gyre fonts
- Restored emoji package
- Restored biblatex with biber backend
- Works with lualatex as expected by compile script