A comprehensive collection of educational deep learning programs demonstrating fundamental concepts in computer vision, natural language processing, and sequence modeling.
The easiest way to run and visualize the labs is through the web interface:
pip install -r requirements.txt
cd web_interface
pip install -r requirements.txt
cd web_interface
python app.py
Navigate to http://localhost:5000 in your web browser.
Features:
For detailed web interface documentation, see web_interface/README.md
Itβs highly recommended to use a virtual environment to avoid dependency conflicts:
# Create virtual environment
python -m venv venv
# Activate virtual environment
# On macOS/Linux:
source venv/bin/activate
# On Windows:
venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
cd web_interface
pip install -r requirements.txt
cd ..
# Run web interface
cd web_interface
python app.py
# Create conda environment
conda create -n dl-lab python=3.9
# Activate environment
conda activate dl-lab
# Install dependencies
pip install -r requirements.txt
cd web_interface
pip install -r requirements.txt
cd ..
# Run web interface
cd web_interface
python app.py
When youβre done:
# For venv:
deactivate
# For conda:
conda deactivate
Benefits of Virtual Environment:
This repository contains 10 self-contained lab activities designed for academic learning. Each lab includes:
Directory: labs_full/lab_01_image_processing/ | Lite: labs_lite/lab_01_image_processing/
Directory: labs_full/lab_02_cifar10_classifiers/ | Lite: labs_lite/lab_02_cifar10_classifiers/
Directory: labs_full/lab_03_batchnorm_dropout/ | Lite: labs_lite/lab_03_batchnorm_dropout/
Directory: labs_full/lab_04_labeling_tools/ | Lite: labs_lite/lab_04_labeling_tools/
Directory: labs_full/lab_05_segmentation/ | Lite: labs_lite/lab_05_segmentation/
Directory: labs_full/lab_06_object_detection/ | Lite: labs_lite/lab_06_object_detection/
Directory: labs_full/lab_07_image_captioning/ | Lite: labs_lite/lab_07_image_captioning/
Directory: labs_full/lab_08_chatbot/ | Lite: labs_lite/lab_08_chatbot/
Directory: labs_full/lab_09_time_series/ | Lite: labs_lite/lab_09_time_series/
Directory: labs_full/lab_10_seq2seq/ | Lite: labs_lite/lab_10_seq2seq/
If you prefer running labs directly from the command line:
pip install -r requirements.txt
Each lab is self-contained with an executable Python program. Navigate to the lab directory and run:
# Lab 1: Image Processing
cd labs_full/lab_01_image_processing
python image_processing.py
# Lab 2: CIFAR-10 Classifiers
cd labs_full/lab_02_cifar10_classifiers
python cifar10_classifiers.py
# Lab 3: Batch Normalization & Dropout
cd labs_full/lab_03_batchnorm_dropout
python batchnorm_dropout_study.py
# Lab 4: Labeling Tools Demo
cd labs_full/lab_04_labeling_tools
python labeling_demo.py
# Lab 5: Image Segmentation
cd labs_full/lab_05_segmentation
python segmentation_demo.py
# Lab 6: Object Detection
cd labs_full/lab_06_object_detection
python object_detection_demo.py
# Lab 7: Image Captioning
cd labs_full/lab_07_image_captioning
python image_captioning_demo.py
# Lab 8: Chatbot
cd labs_full/lab_08_chatbot
python chatbot_demo.py
# Lab 9: Time Series Forecasting
cd labs_full/lab_09_time_series
python time_series_demo.py
# Lab 10: Sequence to Sequence
cd labs_full/lab_10_seq2seq
python seq2seq_demo.py
Or run all labs sequentially:
cd labs_full
bash run_all_labs.sh
For lightweight versions with faster execution:
cd labs_lite
bash run_all_labs.sh
Note: Each program creates an output/ directory in its lab folder with visualizations and results.
Core libraries used across labs:
See requirements.txt for complete list with versions.
All labs are designed to complete within 5 minutes on standard hardware (CPU):
| Lab | Program | Execution Time | Notes |
|---|---|---|---|
| Lab 1 | image_processing.py |
< 30 seconds | Image processing operations |
| Lab 2 | cifar10_classifiers.py |
2-3 minutes | KNN, SVM, 3-layer NN training |
| Lab 3 | batchnorm_dropout_study.py |
2-3 minutes | 4 model variants comparison |
| Lab 4 | labeling_demo.py |
< 30 seconds | Synthetic data generation |
| Lab 5 | segmentation_demo.py |
3-4 minutes | UNet + baseline training |
| Lab 6 | object_detection_demo.py |
3-4 minutes | YOLO-style detector training |
| Lab 7 | image_captioning_demo.py |
3-4 minutes | RNN + LSTM training |
| Lab 8 | chatbot_demo.py |
2-3 minutes | BiLSTM + LSTM training |
| Lab 9 | time_series_demo.py |
2-3 minutes | LSTM + GRU forecasting |
| Lab 10 | seq2seq_demo.py |
3-4 minutes | Seq2Seq + Attention training |
Total time for all labs: ~25-30 minutes
With GPU: Execution times can be 2-5x faster depending on GPU model.
Lite versions: Execute 2-3x faster with reduced dataset sizes and epochs.
By completing these labs, you will:
dl-lab/
βββ web_interface/ # Web-based interface (recommended)
β βββ app.py # Flask application
β βββ templates/ # HTML templates
β βββ requirements.txt # Web interface dependencies
βββ labs_full/ # Full-featured lab programs
β βββ lab_XX_name/
β βββ README.md # Lab-specific instructions
β βββ program.py # Main executable
β βββ output/ # Generated results (created on run)
βββ labs_lite/ # Lightweight versions (faster execution)
β βββ lab_XX_name/
β βββ program_lite.py
β βββ output/
βββ docs/ # Additional documentation
βββ requirements.txt # Main dependencies
All programs:
output/ directoryImport Errors:
pip install --upgrade -r requirements.txt
CUDA Out of Memory:
device = 'cpu'Slow Execution:
For more detailed information, see:
This is an educational repository. Feel free to:
This project is created for educational purposes. Feel free to use and modify for learning.
These labs are designed for academic learning and incorporate best practices from:
Note: All programs are designed to be self-contained and educational. They prioritize clarity and learning over production optimization.
Last Updated: March 2026