- Fix nn/__init__.py: alias Layer as Module for PyTorch compatibility
- Fix test_layers_integration.py: use package imports instead of sys.exit
- Fix test_optimizers_integration.py: use package imports instead of exec()
- Add ReLU, Sigmoid, Softmax, Tanh exports to nn module
- Import Module base class from core.layers
- Fix embeddings import path (text.embeddings not core.embeddings)
- Fix attention import (MultiHeadAttention not SelfAttention)
- Fix transformer import path (models.transformer not core.transformers)
- Handle missing functional module gracefully with try/except
- Update __all__ exports to match available components
- Remove circular imports where modules imported from themselves
- Convert tinytorch.core imports to sys.path relative imports
- Only import dependencies that are actually used in each module
- Preserve documentation imports in markdown cells
- Use consistent relative path pattern across all modules
- Remove hardcoded absolute paths in favor of relative imports
Affected modules: 02_activations, 03_layers, 04_losses, 06_optimizers,
07_training, 09_spatial, 12_attention, 17_quantization
Major refactoring:
- Eliminated Variable class completely from autograd module
- Implemented progressive enhancement pattern with enable_autograd()
- All modules now use pure Tensor with requires_grad=True
- PyTorch 2.0 compatible API throughout
- Clean separation: Module 01 has simple Tensor, Module 05 enhances with gradients
- Fixed all imports and references across layers, activations, losses
- Educational clarity: students learn modern patterns from day one
The system now follows the principle: 'One Tensor class to rule them all'
No more confusion between Variable and Tensor - everything is just Tensor!
Final stage of TinyTorch API simplification:
- Exported updated tensor module with Parameter function
- Exported updated layers module with Linear class and Module base class
- Fixed nn module to use unified Module class from core.layers
- Complete modern API now working with automatic parameter registration
✅ All 7 stages completed successfully:
1. Unified Tensor with requires_grad support
2. Module base class for automatic parameter registration
3. Dense renamed to Linear for PyTorch compatibility
4. Spatial helpers (flatten, max_pool2d) and Conv2d rename
5. Package organization with nn and optim modules
6. Modern API examples showing 50-70% code reduction
7. Complete export with working PyTorch-compatible interface
🎉 Students can now write PyTorch-like code while still implementing
all core algorithms (Conv2d, Linear, ReLU, Adam, autograd)
The API achieves the goal: clean professional interfaces that enhance
learning by reducing cognitive load on framework mechanics.
Stage 5 of TinyTorch API simplification:
- Created tinytorch.nn package with PyTorch-compatible interface
- Added Module base class in nn.modules for automatic parameter registration
- Added functional module with relu, flatten, max_pool2d operations
- Created tinytorch.optim package exposing Adam and SGD optimizers
- Updated main __init__.py to export nn and optim modules
- Linear and Conv2d now available through clean nn interface
Students can now write PyTorch-like code:
import tinytorch.nn as nn
import tinytorch.nn.functional as F
model = nn.Linear(784, 10)
x = F.relu(model(x))