Commit Graph

5 Commits

Author SHA1 Message Date
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
44560465b6 Improve: Training module summary structure and next steps
- Added proper 'Next Steps' section matching 00_setup pattern
- Improved module summary with clear action items
- Added tito export/test commands for user guidance
- Maintains proper structure: Testing → Auto-discovery → Summary
- All tests still passing (6/6 inline, 17/17 integration)
- tito CLI integration working correctly

Structure improvements:
- Clear progression from testing to summary
- Actionable next steps for users
- Consistent formatting with other modules
- Professional module completion guidance
2025-07-14 00:59:31 -04:00
Vijay Janapa Reddi
9896226bc9 Fix: CrossEntropyLoss numerical stability for 1D inputs
- Fixed axis=1 error when CrossEntropyLoss receives 1D prediction arrays
- Added robust handling for both 1D and 2D prediction inputs
- Reshapes 1D arrays to 2D for consistent processing
- All integration tests now pass (17/17)
- All inline tests pass (6/6)
- tito CLI integration working correctly

Technical improvements:
- Handles single sample predictions correctly
- Maintains backward compatibility with batch inputs
- Prevents numpy axis errors in edge cases
- Ensures consistent shape handling across all loss functions
2025-07-14 00:57:38 -04:00
Vijay Janapa Reddi
356bea2c9e Fix: Numerical stability in BinaryCrossEntropyLoss
- Implemented numerically stable binary cross-entropy using log-sum-exp trick
- Computes loss directly from logits without sigmoid computation
- Handles extreme values (±100) correctly without overflow/underflow
- All training module tests now pass successfully
- Fixed issue where extreme predictions caused NaN values

Technical improvements:
- Uses log_sigmoid(x) = x - max(0,x) - log(1 + exp(-abs(x)))
- Avoids sigmoid computation entirely for better numerical stability
- Maintains mathematical correctness while preventing overflow
- Perfect predictions now produce near-zero loss as expected
2025-07-14 00:48:08 -04:00
Vijay Janapa Reddi
db9182d006 Create complete training module with loss functions, metrics, and training loop
- Add training_dev.py with comprehensive educational structure
- Implement MeanSquaredError, CrossEntropyLoss, BinaryCrossEntropyLoss
- Add Accuracy metric with extensible framework
- Create Trainer class for complete training orchestration
- Include comprehensive inline tests for all components
- Add module.yaml with proper dependencies and metadata
- Create detailed README.md with examples and applications
- Add test_training_integration.py with real component integration tests
- Follow TinyTorch NBDev educational pattern with Build → Use → Optimize
- Ready for real-world training workflows with validation and monitoring
2025-07-14 00:42:46 -04:00