Skip to content

MLP Visualizer v2.0.0

Latest

Choose a tag to compare

@ensaryesir ensaryesir released this 13 Jan 08:37
· 1 commit to main since this release

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 (.pkl format)
  • 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