A comprehensive collection of deep learning projects and implementations focused on computer vision tasks. This repository contains practical implementations ranging from basic neural networks built from scratch to advanced CNN architectures for various computer vision applications.
- Overview
- Technology Stack
- Repository Structure
- Projects
- Getting Started
- Prerequisites
- Learning Resources
This repository serves as a comprehensive learning journey through deep learning concepts and applications in computer vision. It includes implementations of neural networks from scratch, tensor operations, and various CNN architectures for real-world computer vision tasks.
The projects primarily follow the tutorial by freeCodeCamp: "Deep Learning for Computer Vision with Python and TensorFlow"
- Deep Learning Frameworks: TensorFlow, PyTorch
- Scientific Computing: NumPy, Pandas
- Data Visualization: Matplotlib, Seaborn
- Computer Vision: OpenCV (where applicable)
- Development Environment: Jupyter Notebooks, Python
deep-learning/
├── scratch/ # Neural network from scratch implementation
├── mnist/ # MNIST digit recognition projects
├── cifar/ # CIFAR-10 image classification
├── eye-cataract/ # Medical image classification
├── data/ # Datasets
├── *.ipynb # Individual project notebooks
└── README.md # This file
- File:
scratch/network.py - Description: Complete implementation of a neural network using only NumPy, including:
- Forward propagation
- Backpropagation algorithm
- Stochastic Gradient Descent (SGD)
- Sigmoid activation function
- Learning Goals: Understanding the mathematical foundations of neural networks
- File:
deep_learning_tensors.ipynb - Description: Comprehensive exploration of TensorFlow tensor operations including:
- Tensor creation and manipulation
- Mathematical operations
- Shape transformations
- Broadcasting
- Learning Goals: Mastering TensorFlow's fundamental data structures
- Files:
mnist-recognition.ipynb- Basic approachmnist/cnn.ipynb- CNN implementation
- Description: Classic handwritten digit classification using:
- Basic neural networks
- Convolutional Neural Networks (CNNs)
- Performance comparison between approaches
- Learning Goals: Understanding CNN architecture and its advantages
- Files:
cifar/cifar-10-cnn.ipynb- Custom CNN architecturecifar/cifar-10-finetuning-vgg-16.ipynb- Transfer learning with VGG-16
- Description: Multi-class image classification with:
- Custom CNN design
- Transfer learning techniques
- Model fine-tuning strategies
- Learning Goals: Advanced CNN architectures and transfer learning
- File:
cat-dog-classification.ipynb - Description: Binary image classification project
- Learning Goals: Binary classification techniques and data preprocessing
- File:
eye-cataract/eye-cataract-classification.ipynb - Description: Medical image classification for cataract detection
- Learning Goals: Applying deep learning to medical imaging
- File:
malaria_classification.ipynb - Description: Classification of malaria-infected blood cells
- Learning Goals: Medical image analysis and class imbalance handling
- File:
car_price_prediction.ipynb - Dataset:
data/second-hand-car.csv - Description: Regression analysis for predicting used car prices
- Learning Goals: Applying neural networks to regression problems
- Python 3.7+
- Jupyter Notebook or JupyterLab
- GPU support recommended for training (optional)
- Clone the repository:
git clone https://github.com/abdulhakkeempa/deep-learning.git
cd deep-learning- Install required packages:
pip install tensorflow torch torchvision numpy pandas matplotlib seaborn jupyter- Launch Jupyter Notebook:
jupyter notebook- Open any
.ipynbfile to start exploring!
Each notebook is self-contained and can be run independently. For the neural network from scratch:
cd scratch
python network.py- Basic Python programming
- Understanding of linear algebra (vectors, matrices)
- Basic calculus (derivatives)
- Familiarity with machine learning concepts
- Introduction to Machine Learning
- Basic statistics and probability
- Familiarity with NumPy and Pandas
- CNN Explainer - Interactive CNN visualization
- ConvNet JS - Neural network playground
- Pooling Layers - Understanding pooling operations
- Deep Learning Specialization by Andrew Ng
- CS231n: Convolutional Neural Networks for Visual Recognition
- TensorFlow Official Tutorials
- PyTorch Tutorials
- Deep Learning by Ian Goodfellow, Yoshua Bengio, and Aaron Courville
- Hands-On Machine Learning by Aurélien Géron
- Python Machine Learning by Sebastian Raschka
Happy Learning! 🚀
Feel free to explore the notebooks, experiment with the code, and adapt the implementations for your own projects!