Repository navigation
MLP Visualizer v2.0.0 - Major Update 🚀
🎉 What's New
This release brings significant performance improvements, new features, and architectural changes that make the application more powerful and user-friendly.
⚡ Major Improvements
🔢 Full NumPy Migration
- Complete rewrite of all matrix operations to use NumPy
- 10-100x performance boost in training and visualization
- Vectorized computations throughout the codebase
- Removed all manual loops for matrix multiplications
🎨 Enhanced Autoencoder System
- Two-stage training workflow: Train Autoencoder → Save Encoder → Train MLP
- Encoder Save/Load: Export and import trained encoders for reuse
- Improved reconstruction visualization: 4×5 grid showing all 10 MNIST digits
- Feature expansion strategy: Project 2D data to higher dimensions for better separation
- Deep encoder architecture: 784→128 for MNIST (better feature extraction)
✍️ MNIST Handwriting Tester
- Interactive digit drawing: Draw your own digits and test the model
- Real-time prediction: Instant classification with confidence scores
- MNIST-style preprocessing: Automatic centering, resizing, and normalization
- 280×280 canvas scaled to 28×28 for accurate testing
🆕 New Features
💾 Model Persistence
- Save and load trained models (
.pklformat) - Separate encoder save/load for Autoencoder workflows
- Auto-creates
weights/directory - Exe-compatible paths: Works in both script and compiled modes
🎯 Improved Training Control
- Min Error stopping criterion as default for all models
- Enhanced stopping criteria visibility and control
- Better status messages during training phases
- Stage completion notifications with actionable next steps
🎨 UI/UX Enhancements
- Context-aware button visibility: Only show relevant controls
- No more black screen: Smooth initialization with proper plot rendering
- Dynamic tab switching: Autoencoder Error, MLP Error, Reconstruction tabs
- Test Split auto-hide: Hidden in MNIST mode (separate test set exists)
🐛 Bug Fixes
Critical Fixes
- ✅ Stop Training button now works immediately (callback-based interruption)
- ✅ Fixed handwriting prediction accuracy (proper MNIST preprocessing)
- ✅ Resolved TabView crash when switching between models
- ✅ Fixed reconstruction visualization (NumPy array boolean checks)
Training Fixes
- ✅ Fixed momentum implementation (normalized update rule)
- ✅ Corrected Perceptron batch size errors
- ✅ Fixed attribute access errors in training pipeline
Visualization Fixes
- ✅ Eliminated initial black screen on MNIST load
- ✅ Fixed decision boundary rendering lag
- ✅ Proper train/test data split visualization
🔧 Configuration Updates
Optimized Defaults
- MNIST Architecture: 784→256→10 (upgraded from 784→128→10)
- Activation Functions: ReLU for hidden layers (faster convergence)
- Stopping Criteria: Min Error (0.01) as global default
- Autoencoder Config:
- MNIST: Deep encoder 784→128
- Manual: Feature expansion 2→16
🛠️ Technical Improvements
- Refactored Architecture: Extracted training logic to
TrainingManager - Code Quality: Removed legacy comments, improved modularity
- Error Handling: Comprehensive exception catching and user notifications
- Type Hints: Added throughout critical paths
📝 Breaking Changes
Warning
Autoencoder Workflow Change
- Stage 1 (Autoencoder) and Stage 2 (MLP) now require manual restart
- This allows encoder saving between stages
- Press "START TRAINING" twice: once for encoder, once for MLP