Commit Graph
878 Commits
Author SHA1 Message Date
Vijay Janapa Reddi 46509bb0ea 📚 Update website navigation and content
- Add Module 20 (AI Olympics) to Competition section
- Remove Historical Milestones from navigation (simplify)
- Remove separate Leaderboard page (consolidate into capstone)
- Simplify AI Olympics capstone content (~60 lines)
  - Clear 'Coming Soon' box for competition platform
  - Brief category descriptions
  - Focus on what students can do now
- Simplify Community page (~50 lines)
  - Clear 'Coming Soon' box for dashboard features
  - Brief feature descriptions
  - Ways to participate now
- Split Competition and Community into separate nav sections
- Fix jupyter-book dependency compatibility for Python 3.8
  - myst-parser 0.18.1 (compatible with myst-nb 0.17.2)
  - sphinx 5.3.0
- Update requirements.txt with compatible versions

Result: Clean, honest, scannable website that shows all 20 modules
2025-10-25 17:26:54 -04:00
Vijay Janapa Reddi a52474321c Add activity badges to README
- Add last commit badge to show project is actively maintained
- Add commit activity badge to show consistent development
- Add GitHub stars badge for social proof
- Add contributors badge to highlight collaboration
2025-10-25 17:07:43 -04:00
Vijay Janapa Reddi f15a4fabd8 Fix modules 10-13 tests and add CLAUDE.md
- Add CLAUDE.md entry point for Claude AI system
- Fix tito test command to set PYTHONPATH for module imports
- Fix embeddings export directive placement for nbdev
- Fix attention module to export imports properly
- Fix transformers embedding index casting to int
2025-10-25 17:04:00 -04:00
Vijay Janapa Reddi 964f425eb4 refactor: Update transformers module and milestone compatibility
- Update transformers module to match tokenization style with improved ASCII diagrams
- Fix attention module to use proper multi-head interface
- Update transformer era milestone for refined module integration
- Fix import paths and ensure forward() method consistency
- All transformer components now work seamlessly together
2025-10-25 16:42:02 -04:00
Vijay Janapa Reddi 7c8b94b59a refactor: Update attention module to match tokenization style
- Clean import structure following TinyTorch dependency chain
- Add proper export declarations for key functions and classes
- Standardize NBGrader cell structure and testing patterns
- Enhance ASCII diagrams with improved formatting
- Align documentation style with tokenization module standards
- Maintain all core functionality and educational value
2025-10-25 15:26:33 -04:00
Vijay Janapa Reddi d4b1d7c279 Merge remote-tracking branch 'origin/dev' into dev 2025-10-25 15:01:45 -04:00
Vijay Janapa Reddi 548e66f0db refactor: Update embeddings module to match tokenization style
- Standardize import structure following TinyTorch dependency chain
- Enhance section organization with 6 clear educational sections
- Add comprehensive ASCII diagrams matching tokenization patterns
- Improve code organization and function naming consistency
- Strengthen systems analysis and performance documentation
- Align package integration documentation with module standards(https://claude.ai/code)
2025-10-25 14:58:30 -04:00
Vijay Janapa ReddiandGitHub 9d3fb50d6f Update work in progress status in README 2025-10-25 14:00:22 -04:00
Vijay Janapa Reddi 850fd1d973 Add .cursor/ and .claude/ to .gitignore and remove from tracking 2025-10-25 13:59:11 -04:00
Vijay Janapa Reddi bde003d908 fix: Adjust ASCII diagram spacing for consistent alignment 2025-10-24 17:51:11 -04:00
Vijay Janapa Reddi c6853d7550 docs: Improve tokenization module with enhanced ASCII diagrams
Following module developer guidelines, added comprehensive visual diagrams:

1. Text-to-Numbers Pipeline (Introduction):
   - Added full boxed diagram showing 4-step tokenization process
   - Clear visual flow from human text to numerical IDs
   - Each step explained inline with the diagram

2. Character Tokenization Process:
   - Step-by-step vocabulary building visualization
   - Shows corpus → unique chars → vocab with IDs
   - Encoding process with ID lookup visualization
   - Decoding process with reverse lookup
   - All in clear nested boxes

3. BPE Training Algorithm:
   - Comprehensive 4-step process with nested boxes
   - Pair frequency analysis with bar charts (████)
   - Before/After merge visualizations
   - Iteration examples showing vocabulary growth
   - Final results with key insights

4. Memory Layout for Embedding Tables:
   - Visual bars showing relative memory sizes
   - Character (204KB) vs BPE-50K (102MB) vs Word-100K (204MB)
   - Shows fp32/fp16/int8 precision trade-offs
   - Real production model examples (GPT-2/3, BERT, T5, LLaMA)
   - Clear table format for comparison

Educational improvements:
- More visual, less text-heavy
- Clearer step-by-step flows
- Better intuition building
- Production context throughout
- Following module developer ASCII diagram patterns

Students now see:
- HOW tokenization works (not just WHAT)
- WHY different strategies exist
- WHAT the memory implications are
- HOW production models make these choices
2025-10-24 17:51:11 -04:00
Vijay Janapa Reddi 0e997e4a10 refactor: Standardize imports across modules 10-17 to match 01-09
Enforce consistent import pattern across all modules:
- Direct imports from tinytorch.core.* (no fallbacks)
- Remove all sys.path.append manipulations
- Remove try/except import fallbacks
- Remove mock/dummy class fallbacks

Fixed modules:
- Module 10 (tokenization): Removed try/except fallback
- Module 12 (attention): Removed sys.path.append for tensor/layers
- Module 15 (profiling): Removed sys.path + mock Tensor/Linear/Conv2d
- Module 16 (acceleration): Removed hardcoded path + importlib + mock Tensor
- Module 17 (quantization): Removed sys.path + disabled fallback block

All modules now follow the same pattern as modules 01-09:
  from tinytorch.core.tensor import Tensor
  from tinytorch.core.layers import Linear
  # etc.

No development fallbacks - assume tinytorch package is installed.
2025-10-24 17:51:10 -04:00
Vijay Janapa ReddiandGitHub 191f6db7c7 Merge pull request #7 from Zappandy/feature/dynamic-venv-config
Feature/dynamic venv config
2025-10-22 09:07:00 -04:00
Vijay Janapa Reddi e6c92e85a0 Add construction-themed work-in-progress banner to website
- Bright yellow/orange gradient banner with construction icons (🚧 ⚠️ 🔨)
- Interactive controls for collapsing and dismissing the banner
- Responsive design that adapts to different screen sizes
- Clear messaging about active development and community feedback
- Proper spacing and professional appearance
- JavaScript functionality for persistent user preferences(https://claude.ai/code)
2025-10-19 16:19:10 -04:00
Vijay Janapa Reddi 65dbcf1f44 fix: Add sphinxcontrib-mermaid to book requirements
- Book _config.yml uses mermaid extension
- Extension was missing from requirements.txt
- Fixes Jupyter Book build error
2025-10-19 13:20:30 -04:00
Vijay Janapa Reddi c9bde1d2a5 fix: Use python -m tito.main instead of tito command
- tito entry point not configured in pyproject.toml
- Use module invocation for deploy-book workflow
2025-10-19 13:17:00 -04:00
Vijay Janapa Reddi e161b018c1 ci: Disable test-notebooks workflow
- This workflow was testing notebook conversion features
- Not required for website deployment
- Website deploys via deploy-book.yml on main branch
- Can re-enable later if needed for CI testing
2025-10-19 13:00:16 -04:00
Vijay Janapa Reddi da10115f91 fix: Look for module dev files in modules/source subdirectory
- NotebooksCommand now checks modules/source/ for dev files
- Fixes 'No *_dev.py files found' error in CI
- Maintains backwards compatibility with flat structure
2025-10-19 12:59:20 -04:00
Vijay Janapa Reddi 4ac2b736c5 fix: Register notebooks command in CLI
- Add NotebooksCommand to commands dictionary in main.py
- Command was imported but not registered
- Fixes 'invalid choice: notebooks' error in workflow
2025-10-19 12:55:15 -04:00
Vijay Janapa Reddi ef820791b9 fix: Correct tito command syntax in workflow
- Change 'tito module notebooks' to 'tito notebooks'
- The notebooks command is a top-level command, not a module subcommand
- Fixes workflow test failures
2025-10-19 12:53:02 -04:00
Vijay Janapa Reddi d33c59fd91 fix: Remove mutually exclusive group from export command
- Positional arguments cannot be in mutually exclusive groups in argparse
- Keep modules as positional argument, --all as optional flag
- Fixes CLI initialization error in GitHub Actions
2025-10-19 12:50:59 -04:00
Vijay Janapa Reddi 9a4c329b61 fix: Update GitHub Actions to use v4 of upload-artifact and cache
- Upgrade actions/upload-artifact from v3 to v4
- Upgrade actions/cache from v3 to v4
- Resolves deprecation warnings causing workflow failures
2025-10-19 12:49:23 -04:00
Vijay Janapa Reddi c0f99164a5 Merge transformers-integration into dev
- Resolve conflicts in README.md and milestones-overview.md
- Add transformer modules and milestones
- Fix GitHub Actions workflow issues
2025-10-19 12:48:18 -04:00
Vijay Janapa Reddi 0755b9e113 docs: update README and website with milestones structure
- Updated main README to prominently feature historical milestones (1957-2024)
- Added new 'Journey Through ML History' section to book navigation
- Created comprehensive milestones-overview.md chapter explaining the progression
- Updated intro.md with milestone achievements section
- Enhanced quickstart-guide.md with milestone unlock information
- Reflects working milestones/ directory structure with 6 historical demonstrations
- Clear progression: Perceptron (1957) → XOR (1969) → MLP (1986) → CNN (1998) → Transformers (2017) → Systems (2024)
- Emphasizes proof-of-mastery approach with real achievements
2025-10-19 12:47:17 -04:00
Vijay Janapa Reddi 0e84216700 feat: Complete transformer integration with milestones
- Add tokenization module (tinytorch/text/tokenization.py)
- Update Milestone 05 transformer demos (validation, TinyCoder, Shakespeare)
- Update book chapters with milestones overview
- Update README and integration plan
- Sync module notebooks and metadata
2025-10-19 12:46:58 -04:00
Vijay Janapa Reddi 8160776485 fix: Resolve GitHub Actions workflow failures
- Fix YAML syntax error in test-notebooks.yml (multi-line Python code)
- Add missing setup-dev.sh script referenced by workflow
- Both workflow files now pass YAML validation
2025-10-19 12:46:34 -04:00
Vijay Janapa ReddiandGitHub f08865f255 Update README.md 2025-10-12 22:21:24 -04:00
Zappandy bf94650cf4 fixed default venv value in config for validation 2025-10-11 13:12:40 +02:00
Zappandy fbea50d9da Feat(env) dynamic virtual env support for advanced users 2025-10-11 12:31:11 +02:00
Vijay Janapa Reddi bc4f6f4c78 Add Milestone 05: TinyGPT transformer demos (validation, TinyCoder, Shakespeare) 2025-09-30 18:42:37 -04:00
Vijay Janapa Reddi 174e3dea62 docs: update README and website with milestones structure
- Updated main README to prominently feature historical milestones (1957-2024)
- Added new 'Journey Through ML History' section to book navigation
- Created comprehensive milestones-overview.md chapter explaining the progression
- Updated intro.md with milestone achievements section
- Enhanced quickstart-guide.md with milestone unlock information
- Reflects working milestones/ directory structure with 6 historical demonstrations
- Clear progression: Perceptron (1957) → XOR (1969) → MLP (1986) → CNN (1998) → Transformers (2017) → Systems (2024)
- Emphasizes proof-of-mastery approach with real achievements
2025-09-30 17:42:12 -04:00
Vijay Janapa Reddi 94227ccf16 feat: Add overfitting detection to Milestones 03 and 04
Track train vs test accuracy to detect overfitting:

Training Progress:
- Print both train and test accuracy every 5 epochs
- Show gap between train/test with indicator:
  ✓ Gap < 10%: Healthy generalization
  ⚠️ Gap > 10%: Overfitting warning

Results Table (ACT 4):
- Train Accuracy + improvement
- Test Accuracy + improvement
- Overfitting Gap + status
- Training Time

Final Panel (ACT 5):
- Show test accuracy with gap
- Celebrate good generalization

Educational Value:
Students now see:
1. How to detect overfitting (growing train/test gap)
2. When model memorizes vs generalizes
3. Real ML systems track BOTH metrics

Example output:
  Epoch  5/20  Loss: 1.234  Train: 85.0%  Test: 82.0%  ✓ Gap: 3.0%
  Epoch 10/20  Loss: 0.891  Train: 90.0%  Test: 87.0%  ✓ Gap: 3.0%

This prepares them for regularization techniques (Dropout, etc.)
in later modules!
2025-09-30 17:33:54 -04:00
Vijay Janapa Reddi a8f672028d style: Make Milestone 04 architecture consistent with others
Changed from Panel to plain console.print with ASCII diagram.

All 4 milestones now follow identical format:
- console.print('[bold]🏗️ The Architecture:[/bold]')
- ASCII box diagram with arrows
- console.print('[bold]🔧 Components:[/bold]')
- Bullet list of components

This ensures visual consistency across all milestone demonstrations!
2025-09-30 17:17:46 -04:00
Vijay Janapa Reddi 9a8d5de49e refactor: Keep explicit module imports + optimize CNN milestone
Import Strategy:
- Keep explicit 'from tinytorch.core.spatial import Conv2d'
- Maps directly to module structure (Module 09 → core.spatial)
- Better for education: students see exactly where each concept lives
- Removed redundant tinytorch/nn.py (nn/ directory already exists)

Milestone 04 Optimizations:
- Reduced epochs: 50 → 20 (explicit loops are slow!)
- Print progress every 5 epochs (instead of 10)
- Load from local npz file (no sklearn dependency)
- Still achieves ~80%+ accuracy

Educational Rationale:
TinyTorch uses explicit imports to show module structure:
  tinytorch.core.tensor      # Module 01
  tinytorch.core.layers      # Module 03
  tinytorch.core.spatial     # Module 09
  tinytorch.core.losses      # Module 04

PyTorch's torch.nn is convenient but pedagogically unclear.
Our approach: clarity over convenience!
2025-09-30 17:15:40 -04:00
Vijay Janapa Reddi 688e5826ec feat: Add Milestone 04 (CNN Revolution 1998) + Clean spatial imports
Milestone 04 - CNN Revolution:
 Complete 5-Act narrative structure (Challenge → Reflection)
 SimpleCNN architecture: Conv2d → ReLU → MaxPool → Linear
 Trains on 8x8 digits dataset (1,437 train, 360 test)
 Achieves 84.2% accuracy with only 810 parameters
 Demonstrates spatial operations preserve structure
 Beautiful visual output with progress tracking

Key Features:
- Conv2d (1→8 channels, 3×3 kernel) detects local patterns
- MaxPool2d (2×2) provides translation invariance
- 100× fewer parameters than equivalent MLP
- Training completes in ~105 seconds (50 epochs)
- Sample predictions table shows 9/10 correct

Module 09 Spatial Improvements:
- Removed ugly try/except import pattern
- Clean imports: 'from tinytorch.core.tensor import Tensor'
- Matches PyTorch style (simple and professional)
- No fallback logic needed

All 4 milestones now follow consistent 5-Act structure!
2025-09-30 17:04:41 -04:00
Vijay Janapa Reddi 928b4b7836 test: Add comprehensive CNN integration tests
Created test_cnn_integration.py with:

 Conv2d Operations Tests:
- Verifies actual convolution (not just shape manipulation)
- Edge detector test proves Conv2d computes correctly
- Shape transformations for various configurations
- Parameter count verification (448 params for 3→16, k=3)

 Pooling Operations Tests:
- MaxPool2d actually computes maximum values
- AvgPool2d actually computes averages
- Shape transformations validated
- Handles negative values correctly

 Numerical Stability Tests:
- Zero inputs handled correctly
- Negative values in pooling work properly

⚠️  Gradient Flow Tests (TODO):
- Placeholder for Conv2d backward support
- Will add when Conv2d autograd integration is implemented

All forward pass tests passing (8/8)!
These tests ensure CNNs actually work, not just shape shuffle.
2025-09-30 16:57:14 -04:00
Vijay Janapa Reddi 0d4bcf58c1 fix: Update Module 09 spatial for standalone classes
Changes:
- Removed broken _SimplifiedTensor and internal Module helper classes
- Updated imports to use tinytorch.core instead of dev modules
- Removed Module inheritance from Conv2d, MaxPool2d, AvgPool2d, SimpleCNN
- All spatial classes now standalone like Linear in layers module

This allows spatial module to export cleanly and import correctly:
  from tinytorch.core.spatial import Conv2d, MaxPool2d, AvgPool2d

Smoke test: Conv2d(1,3,8,8) → (1,16,6,6) ✓
2025-09-30 16:54:21 -04:00
Vijay Janapa Reddi 1e92b87bd0 refactor: Display training times in milliseconds for better resolution
Training on 8x8 digits is so fast (< 1 second) that showing
seconds rounded to 1 decimal doesn't provide meaningful resolution.
Changed to milliseconds (ms) to show actual time differences between
batch sizes.

Now shows: '147ms' instead of '0.1s'
2025-09-30 16:48:26 -04:00
Vijay Janapa Reddi fedbbf27a5 fix: Use len(train_dataset) instead of train_dataset.features
TensorDataset implements __len__ but doesn't expose a 'features' attribute.
Fixed throughput calculation in batch size comparison experiment.
2025-09-30 16:46:57 -04:00
Vijay Janapa Reddi 28198b1481 refactor: Apply 5-Act narrative structure to Milestone 03 + Fix duplicates
Milestone 03 Updates:
- Full 5-Act narrative structure implemented
- ACT 1: Challenge with data description
- ACT 2: Setup with architecture + hyperparameters
- ACT 3: Experiment with training progress
- ACT 4: Diagnosis with results + insights
- ACT 5: Reflection with internal separators (━)
- Horizontal separators (─) between all acts

Fixes Across All Milestones:
- Removed duplicate 'Training Complete' print in Milestone 02
- Standardized table column widths across all 3 milestones:
  * Metric: 18
  * Before Training: 16
  * After Training: 16
  * Improvement: 14
- Consistent table title: 'Training Outcome'
- All final panels now have internal separators

All milestones now follow identical 5-Act structure with:
- Clear visual flow with horizontal rules
- Consistent emoji usage
- Same panel styles and widths
- Beautiful internal separators in celebration panels
2025-09-30 16:45:28 -04:00
Vijay Janapa Reddi 97e4058268 refactor: Apply 5-Act narrative structure to Milestone 02
Implemented complete 5-Act flow for XOR solution:

ACT 1: THE CHALLENGE 🎯
- Problem: Can networks solve non-linearly separable problems?
- XOR dataset with pattern explanation
- Challenge: NOT linearly separable
- Horizontal separator

ACT 2: THE SETUP 🏗️
- Architecture with hidden layer emphasis
- Components: hidden layer transforms space
- Hyperparameters including aggressive LR
- Horizontal separator

ACT 3: THE EXPERIMENT 🔬
- Before: impossible for single-layer
- Training with hidden layers
- Completion message
- Horizontal separator

ACT 4: THE DIAGNOSIS 📊
- Results table (Training Outcome)
- XOR truth table with all 4 cases
- Key insights about hidden layers
- Horizontal separator

ACT 5: THE REFLECTION 🌟
- Final panel with internal separators (━)
- Accomplishments (✓ bullets)
- Historical timeline (1969→1986→TODAY)
- Key insight about hidden layers
- Breakthrough explanation
- Preview of Milestone 03

Consistent with Milestone 01 structure!
2025-09-30 16:42:37 -04:00
Vijay Janapa Reddi 070d78b3ae refactor: Apply 5-Act narrative structure to Milestone 01
Implemented complete 5-Act flow:

ACT 1: THE CHALLENGE 🎯
- Opening panel with problem statement
- Data description
- Horizontal separator

ACT 2: THE SETUP 🏗️
- Architecture diagram
- Components breakdown
- Hyperparameters
- Horizontal separator

ACT 3: THE EXPERIMENT 🔬
- Before training baseline
- Training progress with live updates
- Completion message
- Horizontal separator

ACT 4: THE DIAGNOSIS 📊
- Results table (Training Outcome)
- Sample predictions with context
- Key insights bullet points
- Horizontal separator

ACT 5: THE REFLECTION 🌟
- Celebration panel with internal separators
- What you accomplished (✓ bullets)
- Why this matters (historical/technical)
- Key insight + limitation
- What's next (preview)

Visual improvements:
- Horizontal rules (─) between acts
- Better emoji usage (📊 🏗️ 🔬 📌 💡 🔍)
- Internal separators (━) in final panel
- Consistent [dim] hints throughout
2025-09-30 16:40:06 -04:00
Vijay Janapa Reddi 36988ae241 fix: Add missing box import and remove duplicate prints in Milestone 02
- Added 'from rich import box' import
- Removed duplicate Step 1 prints from generate_xor_data()
- Created MILESTONE_NARRATIVE_FLOW.md with 5-Act structure

New structure creates clear narrative flow:
- Act 1: The Challenge (problem + data)
- Act 2: The Setup (architecture + hyperparams)
- Act 3: The Experiment (training)
- Act 4: The Diagnosis (results + insights)
- Act 5: The Reflection (accomplishment + meaning)

Visual separators between acts for clarity.
2025-09-30 16:37:57 -04:00
Vijay Janapa Reddi 38f99cb18f feat: Apply consistent structure template to Milestones 01 & 02
Updated both milestones to match the standard 7-part template:

1. OPENING - Historical Context
   - Cyan box.DOUBLE panel
   - Year + context in title
   - What they'll build

2. ARCHITECTURE - Visual Understanding
   - ASCII diagram
   - Component breakdown
   - Parameter count

3. STEPS - Numbered Training Process
   - Consistent [bold yellow]Step N:[/bold yellow] format
   - Clear progression
   - Status updates

4. RESULTS TABLE - Before/After Comparison
   - Title: 🎯 Training Results
   - box.ROUNDED style
   - Consistent colors (yellow/green/magenta)

5. SAMPLE PREDICTIONS - Real Outputs
   - 10 sample predictions
   - ✓/✗ with color coding

6. CELEBRATION - Victory!
   - Already standardized
   - Green box.DOUBLE panel

Benefits:
- Students now experience consistent flow
- Clear progression across milestones
- Familiar structure reduces cognitive load
- 'Wow, I'm improving!' experience

Milestone 03 already matches this template!
2025-09-30 16:34:27 -04:00
Vijay Janapa Reddi d1d654f093 feat: Add batch size experiment to Milestone 03 + Create milestone structure guide
Added batch size comparison experiment:
- Optional experiment after main training
- Compares batch sizes: 16, 64, 256
- Shows DataLoader impact on training
- Demonstrates throughput vs update frequency trade-off
- Beautiful comparison table and insights panel

Created MILESTONE_STRUCTURE_GUIDE.md:
- Defines consistent structure across all milestones
- 7-part template: Opening → Architecture → Steps → Results → Predictions → Celebration
- Consistent colors, emojis, box styles
- Ensures students experience progression and familiarity
- Template for future milestones

This creates a cohesive learning journey!
2025-09-30 16:31:21 -04:00
Vijay Janapa Reddi 761533e82b feat: Standardize milestone ending panels across all milestones
All milestones now have consistent celebratory summary panels:
- Same box.DOUBLE style with green border
- '🎉 Success! ...' format
- '💡 What YOU Just Accomplished' section
- Historical context and significance
- '📌 Note' with technical insight
- Preview of next milestone

Updates:
- Milestone 01: Single comprehensive panel
- Milestone 02: Combined into one panel
- Milestone 03: Already had perfect format (template)

This creates a consistent, celebratory learning experience!
2025-09-30 16:28:48 -04:00
Vijay Janapa Reddi 6187725af3 feat: Add CrossEntropyLoss autograd support + Milestone 03 MLP on digits
Key Changes:
- Implemented CrossEntropyBackward for gradient computation
- Integrated CrossEntropyLoss into enable_autograd() patching
- Created comprehensive loss gradient test suite
- Milestone 03: MLP digits classifier (77.5% accuracy)
- Shipped tiny 8x8 digits dataset (67KB) for instant demos
- Updated DataLoader module with ASCII visualizations

Tests:
- All 3 losses (MSE, BCE, CrossEntropy) now have gradient flow
- MLP successfully learns digit classification (6.9% → 77.5%)
- Integration tests pass

Technical:
- CrossEntropyBackward: softmax - one_hot gradient
- Numerically stable via log-softmax
- Works with raw class labels (no one-hot needed)
2025-09-30 16:22:09 -04:00
Vijay Janapa Reddi 1c26ce5164 Fix DataLoader integration tests to work before export
Added fallback import logic:
- Try importing from tinytorch package first
- Fall back to dev modules if not exported yet
- Works both before and after 'tito export 08_dataloader'

All 3 integration tests pass:
 Training workflow integration
 Shuffle consistency across epochs
 Memory efficiency verification
2025-09-30 16:08:21 -04:00
Vijay Janapa Reddi 22309fa39d Finalize Module 08 and add integration tests
Added integration tests for DataLoader:
- test_dataloader_integration.py in tests/integration/
  - Training workflow integration
  - Shuffle consistency across epochs
  - Memory efficiency verification

Updated Module 08:
- Added note about optional performance analysis
- Clarified that analysis functions can be run manually
- Clean flow: text → code → tests

Updated datasets/tiny/README.md:
- Minor formatting fixes

Module 08 is now complete and ready to export:
 Dataset abstraction
 TensorDataset implementation
 DataLoader with batching/shuffling
 ASCII visualizations for understanding
 Unit tests (in module)
 Integration tests (in tests/)
 Performance analysis tools (optional)

Next: Export with 'bin/tito export 08_dataloader'
2025-09-30 16:07:55 -04:00
Vijay Janapa Reddi ee9ffec32e Clean up Module 08: Remove unconditional function calls
Fixed issue where performance analysis functions were called every time
the module was imported, instead of only when needed.

Changes:
- Commented out analyze_dataloader_performance() bare call
- Commented out analyze_memory_usage() bare call
- Removed redundant test_training_integration() comment

These functions are still defined and can be called manually for
performance insights, but won't run on every import.

The test_module() function still calls all necessary tests when
the module is run as __main__.

Result: Module imports cleanly without running expensive performance
benchmarks unless explicitly requested.
2025-09-30 15:26:00 -04:00