Skip to content

espressolee/lenet_project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LeNet Gaussian Blur Robustness Experiment

📌 Overview

This project evaluates the robustness of the LeNet convolutional neural network under Gaussian Blur (σ = 0.1, 0.25, 0.5) conditions, compared to a noise-free baseline.
Training and evaluation are performed on a subset of the MNIST dataset, with visualizations of accuracy and loss curves.


📂 Project Structure

.
├─ main.py              # Main training and evaluation script
├─ dataset.py           # MNIST dataset loader and Gaussian Blur preprocessing
├─ model.py             # LeNet model implementation
├─ config.py            # Configuration parameters
├─ make_report.py       # Generate graphs and summary from report_table.csv
├─ requirements.txt     # Python dependencies
├─ output/              # Saved loss/accuracy plots
├─ results/             # CSV logs for model accuracy
└─ README.md

⚙️ Requirements

  • Python 3.8+
  • PyTorch
  • torchvision
  • OpenCV (cv2)
  • matplotlib
  • pandas
  • Pillow

Install dependencies:

pip install -r requirements.txt

🚀 Usage

1. Train and Evaluate (No Noise)

python main.py --mode train --model lenet --noise False --epochs 10
python main.py --mode eval  --model lenet --noise False

2. Train and Evaluate with Gaussian Blur

# Example: σ = 0.25
python main.py --mode train --model lenet --noise True --noise_type gaussian_blur --noise_var 0.25 --epochs 10
python main.py --mode eval  --model lenet --noise True --noise_type gaussian_blur --noise_var 0.25

3. Generate Accuracy Graphs from Report

python main.py --mode visualize_report

📊 Results

  • Accuracy comparison graphs are stored in:
    output/summary/accuracy_comparison_noise0.1.png
    output/summary/accuracy_comparison_noise0.25.png
    output/summary/accuracy_comparison_noise0.5.png
    
  • Training loss curves are saved in:
    output/lenet/loss/
    

🔮 Future Improvements

  • Add more noise types (Gaussian Noise, Salt & Pepper, Motion Blur).
  • Compare with ResNet18, MobileNetV2, and EfficientNetB0.
  • Perform data augmentation (rotation, random crop).
  • Test on embedded devices (Jetson Nano, Raspberry Pi).

👨‍💻 Author

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages