Commit Graph

12 Commits

Author SHA1 Message Date
Vijay Janapa Reddi
485a358b37 feat: Complete standardized testing implementation and VS Code improvements
- Added locked standardized testing sections to autograd and optimizers modules
- Fixed kernels module structure to match optimizers/training pattern
- Added comprehensive VS Code setup guide for Jupytext editing
- All 12 TinyTorch modules now have consistent testing framework
- Cleaned up temporary development files
2025-07-14 14:16:06 -04:00
Vijay Janapa Reddi
5af4130ad4 Simplify test discovery and clean up test function names across all modules
MAJOR IMPROVEMENT: Simplified test discovery logic
- Removed restrictive valid_patterns requirement from testing framework
- Any function starting with 'test_' is now automatically discovered
- Follows standard pytest conventions - no maintenance overhead
- Eliminates need to manually add patterns for new test functions

CLEANED UP: Test function names across all 10 modules
- Removed redundant '_comprehensive' suffix from all test functions
- Updated 40+ test function names to be more concise and readable:
  * 00_setup: 6 functions (test_personal_info, test_system_info, etc.)
  * 01_tensor: 4 functions (test_tensor_creation, test_tensor_properties, etc.)
  * 02_activations: 1 function (test_activations)
  * 03_layers: 3 functions (test_matrix_multiplication, test_dense_layer, etc.)
  * 04_networks: 4 functions (test_sequential_networks, test_mlp_creation, etc.)
  * 05_cnn: 3 functions (test_convolution_operation, test_conv2d_layer, etc.)
  * 06_dataloader: 4 functions (test_dataset_interface, test_dataloader, etc.)
  * 07_autograd: 6 functions (test_variable_class, test_add_operation, etc.)
  * 08_optimizers: 5 functions (test_gradient_descent_step, test_sgd_optimizer, etc.)
  * 09_training: 6 functions (test_mse_loss, test_crossentropy_loss, etc.)
  * 10_compression: 6 functions (already cleaned up)

VERIFICATION: All tests still pass
- All 10 modules tested successfully with new discovery logic
- Total test count maintained: 47 inline tests across all modules
- No functionality lost, only improved maintainability

RESULT: Much cleaner, more maintainable testing framework following standard conventions
2025-07-14 10:24:04 -04:00
Vijay Janapa Reddi
34bb6cecaa Export: Training and Optimizers modules to TinyTorch package
- Exported 09_training module using nbdev directly from Python file
- Exported 08_optimizers module to resolve import dependencies
- All training components now available in tinytorch.core.training:
  * MeanSquaredError, CrossEntropyLoss, BinaryCrossEntropyLoss
  * Accuracy metric
  * Trainer class with complete training orchestration
- All optimizers now available in tinytorch.core.optimizers:
  * SGD, Adam optimizers
  * StepLR learning rate scheduler
- All components properly exported and functional
- Integration tests passing (17/17)
- Inline tests passing (6/6)
- tito CLI integration working correctly

Package exports:
- tinytorch.core.training: 688 lines, 5 main classes
- tinytorch.core.optimizers: 17,396 bytes, complete optimizer suite
- Clean separation of development vs package code
- Ready for production use and further development
2025-07-14 01:01:59 -04:00
Vijay Janapa Reddi
869d4251e7 Standardize module.yaml files for instructor/staff workflow
- Remove student-facing bloat (learning objectives, time estimates, pedagogical details)
- Remove assessment sections (not needed for operational metadata)
- Streamline to essential system information only:
  - Module identification and dependencies
  - Package export configuration
  - File structure and component listings

- Updated existing files (6): setup, tensor, activations, layers, autograd, optimizers
- Created missing files (3): networks, cnn, dataloader
- Consistent 25-26 line format across all 9 modules

Result: Pure operational metadata for CLI tools and build systems
Perfect for instructor/staff development workflow
2025-07-14 00:08:05 -04:00
Vijay Janapa Reddi
279702865a Fix inline test failures across 3 modules
- 00_setup: Fix naming inconsistency (setup_health → setup_score)
  - Tests expected 'setup_score' key but implementation returned 'setup_health'
  - Updated all references to use consistent 'setup_score' naming
  - Result: 37/37 tests now passing

- 05_cnn: Fix flatten function shape expectations
  - Comprehensive tests expected (4,) shape but integration tests expected (1,4) shape
  - Made comprehensive tests consistent with integration test expectations
  - Flatten function now correctly preserves batch dimension for realistic usage
  - Result: 39/39 tests now passing

- 08_optimizers: Fix recursion error in test execution
  - Direct test call was causing infinite recursion loop
  - Removed problematic direct test call, rely on auto-discovery system
  - Result: 5/5 tests now passing

All inline tests now pass: 214/214 tests (100% success rate)
2025-07-13 22:44:08 -04:00
Vijay Janapa Reddi
1320b26bb8 Complete systematic update of testing infrastructure for modules 07-08
- Updated 07_autograd module with auto-discovery testing infrastructure
  - Renamed all test functions to follow _comprehensive/_integration pattern
  - Updated all function calls to use new names
  - Added main section with run_module_tests_auto('Autograd')
  - All 6 test functions now working with auto-discovery

- Updated 08_optimizers module with auto-discovery testing infrastructure
  - Renamed all test functions to follow _comprehensive/_integration pattern
  - Updated all function calls to use new names
  - Added main section with run_module_tests_auto('Optimizers')
  - All 5 test functions now working with auto-discovery

- Modules 09-13 are currently empty (no development files yet)

- All existing modules (00-08) now use consistent testing architecture
- Testing utilities properly located in tito/tools (not core library)
- Zero-maintenance auto-discovery system working across all modules
2025-07-13 21:15:49 -04:00
Vijay Janapa Reddi
40686807d7 🔬 Complete inline test verification and standardization
 All 8 modules now have fully functional inline tests
🎯 Verified 37 inline tests across all implemented modules
📈 08_optimizers module fully standardized with TinyTorch naming conventions
🔧 Fixed import path issues in 08_optimizers module
🧪 All inline tests provide excellent educational feedback

Modules verified:
- 00_setup: 8 tests 
- 01_tensor: 4 tests 
- 02_activations: 5 tests 
- 03_layers: 3 tests 
- 04_networks: 4 tests 
- 05_cnn: 4 tests 
- 06_dataloader: 4 tests 
- 07_autograd: 6 tests 
- 08_optimizers: 5 tests 

All inline tests pass with comprehensive educational output.
2025-07-13 20:17:48 -04:00
Vijay Janapa Reddi
2ab842bd35 📚 Consolidate module documentation into single source
- Replaced 3 overlapping documentation files with 1 authoritative source
- Set modules/source/08_optimizers/optimizers_dev.py as reference implementation
- Created comprehensive module-rules.md with complete patterns and examples
- Added living-example approach: use actual working code as template
- Removed redundant files: module-structure-design.md, module-quick-reference.md, testing-design.md
- Updated cursor rules to point to consolidated documentation
- All module development now follows single source of truth
2025-07-13 19:35:16 -04:00
Vijay Janapa Reddi
2282af2d10 🔬 Standardize Unit Test terminology across all modules
 Updated modules to use consistent testing format:
- 08_optimizers: 'Testing X...' → '🔬 Unit Test: X...'
- 07_autograd: 'Testing X...' → '🔬 Unit Test: X...'
- 02_activations: 'Testing X...' → '🔬 Unit Test: X...'
- 03_layers: 'Testing X...' → '🔬 Unit Test: X...'

🎯 Now all modules follow tensor_dev.py format:
-  Consistent '🔬 Unit Test: [Component]...' format
-  Maintains visual consistency across all modules
-  Clear identification of unit test sections
-  Professional and educational presentation

📊 Status: All 9 modules (00-08) now use unified testing terminology
2025-07-13 17:30:36 -04:00
Vijay Janapa Reddi
777b0f1ce1 ♻️ Remove separate tests/ directory, use inline tests only
🔄 Changes:
- Removed modules/source/08_optimizers/tests/ directory
- Updated module.yaml to reference inline tests
- All testing now handled within optimizers_dev.py file
- Cleaned up pytest cache references

 Verification:
- All inline tests still pass correctly
- SGD and Adam optimizers working perfectly
- Training integration demonstrating convergence
- Module fully functional with inline testing approach

This aligns with the decision to drop separate test files and rely on inline testing within the _dev.py files for immediate feedback and validation.
2025-07-13 17:24:58 -04:00
Vijay Janapa Reddi
9f38cc435c Complete 08_optimizers module implementation
🔥 Core Features Implemented:
- Gradient descent step function with proper parameter updates
- SGD optimizer with momentum and weight decay
- Adam optimizer with adaptive learning rates and bias correction
- StepLR learning rate scheduler with step-based decay
- Complete training integration with real convergence examples

🧪 Testing & Validation:
- All unit tests passing for each optimizer component
- Learning rate scheduler timing fixed and working correctly
- Training integration demonstrates SGD vs Adam convergence
- Comprehensive test suite covering all functionality

�� Educational Structure:
- Follows TinyTorch NBDev patterns with solution markers
- Step-by-step implementation guidance with TODO blocks
- Mathematical foundations with intuitive explanations
- Real-world training examples showing optimizer behavior
- Complete documentation and README

 Results:
- SGD achieves perfect convergence: w=2.000, b=1.000
- Adam achieves good convergence: w=1.598, b=1.677
- All tests pass, module ready for student use
- Sets foundation for future 09_training module
2025-07-13 17:23:07 -04:00
Vijay Janapa Reddi
e5f1daf740 Remove module-level tests directories, keep only main tests/ for exported package validation
- Remove all tests/ directories under modules/source/
- Keep main tests/ directory for testing exported functionality
- Update status command to check tests in main tests/ directory
- Update documentation to reflect new test structure
- Reduce maintenance burden by eliminating duplicate test systems
- Focus on inline NBGrader tests for development, main tests for package validation
2025-07-13 17:14:14 -04:00