📚 Educational Machine Learning Repository - A comprehensive collection of deep learning and machine learning implementations designed for educational purposes. This repository features various neural network architectures and ML projects built primarily in PyTorch, with a focus on demonstrating fundamental concepts, training methodologies, and architectural principles of modern AI systems. Each project is implemented from scratch to provide clear, step-by-step examples that facilitate understanding of how neural networks and computer vision models operate at their core, prioritizing educational value and code clarity over production optimization.
Image Deblurring Network - A CNN-based deep learning model for removing Gaussian blur from images.
- Architecture: 7-layer CNN with residual connections (1.33M parameters)
- Training Approach: Single-image overfitting for demonstration purposes
- Loss Functions: Combined MSE + VGG19 Perceptual Loss
- Features: Mixed precision training, gradient clipping, TF32 acceleration
- Input/Output: 512×512 RGB images
- Use Case: Educational demonstration of image restoration techniques
The model learns to map blurred images back to sharp versions using a symmetric encoder-decoder architecture with skip connections to preserve original image information.
Multi-Dataset Image Recognition Network - A comprehensive CNN for classifying hundreds of classes across multiple datasets.
- Architecture: Wide CNN with 4 blocks (128→256→512→1024 filters, ~83M parameters)
- Training Approach: Multi-dataset unified training across 10+ popular CV datasets
- Datasets: MNIST, Fashion-MNIST, CIFAR-10/100, SVHN, STL-10, Food-101, Flowers-102, Oxford Pet, Caltech-101/256
- Features: Mixed precision training, extensive data augmentation, automatic checkpointing
- Input/Output: 64×64 RGB images → hundreds of class predictions with confidence scores
- Use Case: Comprehensive multi-domain image classification system
The model combines multiple datasets into a unified recognition system capable of identifying digits, fashion items, objects, food, flowers, pets, and more through a single neural network.
This project uses the Scripts/ directory for easy environment setup across different platforms. The setup process will create a virtual environment and install all required dependencies automatically.
# Run from project root directory
Scripts\WinSetup.bat# Make executable and run from project root
chmod +x Scripts/LinuxSetup.sh
./Scripts/LinuxSetup.shWindows (Command Prompt):
Scripts\EnvActivate.batWindows (PowerShell):
.\Scripts\EnvActivate.ps1Linux/macOS:
chmod +x Scripts/EnvActivate.sh # First time only
./Scripts/EnvActivate.sh- 🐍 Auto-detects Python: Works with
python,py, orpython3commands - 📦 Creates Virtual Environment: Isolated
.venvfolder in project root - ⬇️ Installs Dependencies: All packages from
requirements.txt - ✅ Verification: Confirms successful setup with clear messaging
For detailed setup instructions, troubleshooting, and advanced usage, see Scripts/README.md.
The following Python packages are automatically installed during setup:
- torch>=2.0.0 - PyTorch deep learning framework
- torchvision>=0.15.0 - Computer vision utilities and models
- Pillow>=9.0.0 - Python Imaging Library for image processing
- numpy>=1.21.0 - Numerical computing and array operations
- matplotlib>=3.5.0 - Plotting and data visualization
- pandas>=1.3.0 - Data manipulation and analysis
- scipy>=1.7.0 - Scientific computing and optimization
- argparse - Command-line argument parsing
- Python 3.8+ (Python 3.9+ recommended)
- CUDA-compatible GPU (optional, but recommended for faster training)
- 4GB+ RAM (8GB+ recommended for GPU training)
- GPU: CUDA-compatible GPU with 4GB+ VRAM for optimal performance
- CPU: Fallback support available but significantly slower
- Memory: 8GB+ system RAM recommended
- Storage: SSD recommended for faster data loading
MachineLearning/
├── .venv/ # Virtual environment (created during setup)
├── Scripts/ # Setup and activation scripts
│ ├── WinSetup.bat # Windows environment setup
│ ├── LinuxSetup.sh # Linux/macOS environment setup
│ ├── EnvActivate.* # Environment activation scripts
│ └── README.md # Detailed setup documentation
├── Deblur/ # Image deblurring project
│ ├── Deblur.py # Main training script
│ ├── PerceptualLoss.py # VGG19 perceptual loss implementation
│ ├── data/ # Training images directory
│ └── README.md # Project-specific documentation
├── requirements.txt # Python dependencies
├── LICENSE # Project license
└── README.md # This file
- Clone the repository
- Run the appropriate setup script from the
Scripts/directory - Activate the virtual environment using the activation scripts
- Navigate to a project folder (e.g.,
Deblur/) - Follow project-specific README for detailed instructions
This repository will continue to grow with additional machine learning projects covering:
- Generative models (GANs, VAEs)
- Natural Language Processing
- Reinforcement Learning
- Object Detection and Segmentation
- Transfer Learning examples
These projects are designed for learning purposes and may not be optimized for production use. They emphasize clarity and educational value over performance optimization.
This project is for educational purposes. Please refer to the LICENSE file for usage terms.