https://github.com/adolbyb/deep-learning-python
A collection of code for CAP 4613: Intro to Deep Learning
https://github.com/adolbyb/deep-learning-python
convolutional-neural-networks deep-learning gradient-descent jupyter-notebook keras machine-learning neural-networks perceptron-algorithm python tensorflow
Last synced: about 1 month ago
JSON representation
A collection of code for CAP 4613: Intro to Deep Learning
- Host: GitHub
- URL: https://github.com/adolbyb/deep-learning-python
- Owner: ADolbyB
- Created: 2023-01-27T16:50:54.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-04-30T04:07:42.000Z (about 3 years ago)
- Last Synced: 2025-01-20T18:34:44.662Z (over 1 year ago)
- Topics: convolutional-neural-networks, deep-learning, gradient-descent, jupyter-notebook, keras, machine-learning, neural-networks, perceptron-algorithm, python, tensorflow
- Language: Jupyter Notebook
- Homepage:
- Size: 78.1 MB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Deep Learning with Python
### Introduction to Neural Networks & Machine Learning
[](https://github.com/ADolbyB/deep-learning-python/stargazers)
[](https://github.com/ADolbyB/deep-learning-python/network/members)
[](https://github.com/ADolbyB/deep-learning-python)
[](https://github.com/ADolbyB/deep-learning-python/commits/main)
[](https://www.python.org/)
[](https://www.tensorflow.org/)
[](https://keras.io/)
[](https://jupyter.org/)
**Developed by:** [](https://github.com/ADolbyB)
---
## π Course Overview
**Course:** Introduction to Deep Learning
**Focus:** Practical implementation of neural networks and deep learning algorithms using Python
This repository contains a comprehensive collection of Jupyter notebooks, assignments, and practice implementations covering fundamental to advanced deep learning concepts. All code is written in Python using industry-standard frameworks including TensorFlow and Keras.
---
## π― Learning Objectives
This repository demonstrates mastery of:
β
**Neural Network Fundamentals** - Perceptrons, activation functions, backpropagation
β
**Deep Learning Architectures** - CNNs, RNNs, and specialized networks
β
**Gradient Descent Optimization** - SGD, Adam, RMSprop, learning rate scheduling
β
**TensorFlow & Keras** - Model building, training, and deployment
β
**Computer Vision** - Image classification, feature extraction, transfer learning
β
**Model Evaluation** - Training/validation splits, performance metrics, overfitting prevention
---
## π Repository Structure
```
deep-learning-python/
βββ assets/ # Handwritten solutions for assignments and lectures
β βββ HW1/ # Assets for assignment1.ipynb
β βββ HW2/ # Assets for assignment2.ipynb
β βββ ...
β βββ HW6/ # Assets for assignment6.ipynb
β βββ Lecture2/ # Assets for lecture2.ipynb
β βββ Lecture6/ # Assets for lecture6a/b/c/d.ipynb
βββ Assignments/ # Python code for Deep Learning
β βββ assignment1-test.ipynb # Test script for Assignment 1
β βββ assignment1.ipynb # Code for Assignment 1
β βββ assignment2-test.ipynb # Test script for Assignment 2
β βββ assignment2.ipynb # Code for Assignment 2
β βββ ...
β βββ assignment6.ipynb # Code for Assignment 6
βββ Lectures/ # Lecture notebooks and examples
β βββ lecture1.ipynb # Code from 1st week of lectures
β βββ lecture1.ipynb # Code from 2nd week of lectures
β βββ ...
β βββ lecture7e.ipynb # Code from 7th week of lectures
βββ PracticeExams/ # Exam prep materials
β βββ 3dplotTest.ipynb/ # 3D rendering script for GPU testing
β βββ practiceExam1-11.ipynb # Midterm practice problems
β βββ practiceExam1-12.ipynb # Midterm practice problems
β βββ practiceExam1-13.ipynb # Midterm practice problems
β βββ practiceExam1-14.ipynb # Midterm practice problems
β βββ practiceExam1-15.ipynb # Midterm practice problems
β βββ quiz5.ipynb # Practice quiz question
βββ assets/ # Images, diagrams, and resources
βββ README.md # This document
```
---
## π§ Topics Covered
### Fundamental Concepts
**1. Perceptron Algorithm**
- Single-layer perceptrons
- Linear separability
- Decision boundaries
- Weight updates and bias
**2. Neural Networks**
- Multi-layer perceptrons (MLPs)
- Activation functions (ReLU, sigmoid, tanh, softmax)
- Forward propagation
- Backpropagation algorithm
**3. Gradient Descent**
- Batch gradient descent
- Stochastic gradient descent (SGD)
- Mini-batch gradient descent
- Momentum and adaptive learning rates
### Advanced Architectures
**4. Convolutional Neural Networks (CNNs)**
- Convolution layers and kernels
- Pooling operations (max, average)
- Feature maps and filters
- Image classification tasks
**5. Deep Learning Techniques**
- Dropout regularization
- Batch normalization
- Transfer learning
- Data augmentation
**6. Model Optimization**
- Loss functions (MSE, cross-entropy)
- Optimizers (Adam, RMSprop, Adagrad)
- Learning rate scheduling
- Early stopping
---
## π οΈ Technology Stack
| Technology | Purpose | Documentation |
|------------|---------|---------------|
| **Python 3.x** | Core programming language | [Python Docs](https://docs.python.org/3/) |
| **TensorFlow** | Deep learning framework | [TensorFlow](https://www.tensorflow.org/) |
| **Keras** | High-level neural network API | [Keras Docs](https://keras.io/) |
| **Jupyter Notebook** | Interactive development environment | [Jupyter](https://jupyter.org/) |
| **NumPy** | Numerical computations | [NumPy Docs](https://numpy.org/) |
| **Matplotlib** | Data visualization | [Matplotlib](https://matplotlib.org/) |
| **scikit-learn** | Machine learning utilities | [scikit-learn](https://scikit-learn.org/) |
---
## π Getting Started
### Prerequisites
**Python Environment:**
- Python 3.8 or higher
- Mambaforge package manager (recommended)
- Conda/Mamba environments
**Hardware Setup:**
- **Development Machine:** Dell Precision 5540 Laptop
- Intel Core i9 processor
- **NVIDIA Quadro T2000 (4GB VRAM)** - GPU acceleration for model training
- CUDA-enabled TensorFlow for local GPU training
- 16GB+ system RAM recommended
- SSD storage for faster data loading
> π‘ **GPU Advantage:** All models in this repository were trained using the NVIDIA Quadro T2000, significantly reducing training time compared to CPU-only execution. TensorFlow automatically detects and utilizes the GPU when properly configured.
### Installation
**Using Mambaforge (Recommended):**
```bash
# Clone the repository
git clone https://github.com/ADolbyB/deep-learning-python.git
cd deep-learning-python
# Create conda environment with Python 3.10
mamba create -n deep-learning python=3.10
mamba activate deep-learning
# Install TensorFlow with GPU support
mamba install -c conda-forge tensorflow-gpu cudatoolkit cudnn
# Install additional packages
mamba install -c conda-forge keras numpy matplotlib jupyter scikit-learn pandas
# Verify GPU detection
python -c "import tensorflow as tf; print('GPU Available:', tf.config.list_physical_devices('GPU'))"
# Launch Jupyter Notebook or VS Code
jupyter notebook
# Or use VS Code with Jupyter extension
```
**Environment Location:**
- Conda environments stored at: `~/mambaforge/envs/deep-learning/`
- Package cache: `~/mambaforge/pkgs/`
**VS Code Setup (GPU-Accelerated Development):**
1. Install VS Code extensions:
- Python
- Jupyter
- Pylance
2. Select the conda environment:
- Press `Ctrl+Shift+P`
- Type "Python: Select Interpreter"
- Choose `~/mambaforge/envs/deep-learning/bin/python`
3. Open any `.ipynb` notebook and run cells with GPU acceleration
> π― **Pro Tip:** Use `watch -n 1 nvidia-smi` in a separate terminal to monitor GPU utilization during training.
### Quick Start
1. **Navigate to Lectures** - Start with `Lectures/` for fundamentals
2. **Work through Assignments** - `Assignments/` are structured in order to follow assignments
3. **Review Practice Exams** - Test and modify to understand concepts
4. **Experiment** - Modify code and explore different approaches
---
## π Sample Projects
### Assignment Highlights
**Perceptron Implementation**
- From-scratch perceptron algorithm
- Visualization of decision boundaries
- Binary classification problems
**Neural Network Training**
- Multi-layer network construction
- Custom training loops
- Performance evaluation and metrics
**CNN Image Classification**
- Image preprocessing pipelines
- Convolutional layer design
- Transfer learning with pre-trained models
---
## π Academic Context
**Course:** Introduction to Deep Learning
**Level:** Upper-division Computer Science Elective
**Format:** Jupyter Notebooks with embedded explanations and visualizations
**Learning Approach:**
- Theory combined with practical implementation
- Progressive difficulty from fundamentals to advanced topics
- Real-world datasets and problems
- Emphasis on understanding *why* algorithms work, not just *how*
---
## π Key Learning Resources
### Official Documentation
- [TensorFlow Tutorials](https://www.tensorflow.org/tutorials)
- [Keras Getting Started Guide](https://keras.io/getting_started/)
- [Deep Learning Specialization](https://www.coursera.org/specializations/deep-learning) - Coursera
### Recommended Reading
- "Deep Learning" by Ian Goodfellow, Yoshua Bengio, Aaron Courville
- "Hands-On Machine Learning" by AurΓ©lien GΓ©ron
- "Neural Networks and Deep Learning" by Michael Nielsen (free online)
### Video Resources
- [3Blue1Brown: Neural Networks](https://www.youtube.com/playlist?list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi)
- [Sentdex: Deep Learning with Python](https://www.youtube.com/playlist?list=PLQVvvaa0QuDfhTox0AjmQ6tvTgMBZBEXN)
- [Stanford CS231n: CNNs for Visual Recognition](http://cs231n.stanford.edu/)
---
## π‘ Best Practices Demonstrated
**Code Organization:**
- β
Modular, reusable functions
- β
Clear variable naming and documentation
- β
Proper train/validation/test splits
- β
Reproducible results with random seeds
**Model Development:**
- β
Baseline model establishment
- β
Iterative improvement and experimentation
- β
Hyperparameter tuning
- β
Performance visualization and analysis
**Documentation:**
- β
Markdown cells explaining concepts
- β
Inline comments for complex operations
- β
Visualizations of results and metrics
- β
Lessons learned and insights
---
## π€ Contributing
While this is primarily a coursework repository, improvements are welcome:
- π Documentation enhancements
- π Bug fixes in implementations
- π‘ Additional examples or explanations
- π¨ Visualization improvements
Please open an issue or submit a pull request!
---
## π License
This project is licensed under the GNU GPL v3 License - see the [LICENSE.md](https://github.com/ADolbyB/deep-learning-python/blob/main/LICENSE.md) file for details.
**Academic Integrity Notice**: This repository represents completed coursework. If you're currently enrolled in a similar course, please use this as reference material only and adhere to your institution's academic honesty policies.
---
## π§ Contact
**GitHub:** [Joel Brigida](https://github.com/ADolbyB)
**LinkedIn:** [Joel Brigida](https://www.linkedin.com/in/joelmbrigida/)
Questions about implementations or concepts? Feel free to open an issue!
---
## π Repository Stats




---
**Master Deep Learning. Build Intelligent Systems. Transform Data into Insights.**
*From perceptrons to production-ready neural networks* π§
[](https://github.com/ADolbyB)