A comprehensive deep learning course with hands-on implementations in PyTorch.
This course is organized into 13 modules, each focusing on specific aspects of deep learning:
- Python fundamentals
- PyTorch basics
- Development environment setup
- Basic concepts
- Types of learning
- Evaluation metrics
- Linear regression from scratch
- PyTorch implementation
- Weight decay and regularization
- Files:
linear_regression_teaching.py
- From-scratch implementationlinear_regression_pytorch.py
- PyTorch high-level APIlinear_regression_weight_decay.py
- Regularization concepts
- Binary and multiclass classification
- Softmax regression
- Cross-entropy loss
- Neural network fundamentals
- Backpropagation
- Activation functions
- Convolution operation
- CNN architectures
- Image classification
- ResNet, VGG, AlexNet
- Transfer learning
- Fine-tuning
- RNN fundamentals
- LSTM and GRU
- Sequence modeling
- Attention mechanisms
- Transformer architecture
- Self-attention
- Variational Autoencoders
- Generative Adversarial Networks
- Diffusion models
- Optimization algorithms
- Learning rate scheduling
- Regularization techniques
- Graph Neural Networks
- Reinforcement Learning
- Computer Vision applications
- Real-world applications
- Project presentations
- Best practices
- Clone this repository:
git clone https://github.com/Shakeri-Lab/dl-course.git
cd dl-course
- Install dependencies:
pip install torch torchvision matplotlib numpy
- Navigate to any module directory and explore the materials.
Each module builds upon previous concepts. It's recommended to follow the modules in order, especially for beginners.
- Basic Python programming
- Linear algebra fundamentals
- Calculus basics
- Statistics and probability
This course emphasizes:
- Understanding from first principles - We implement key algorithms from scratch
- Practical application - Every concept is accompanied by working code
- Progressive complexity - Starting simple and building to advanced topics
- Real-world relevance - Focus on techniques used in industry and research
Each module contains:
- Jupyter notebooks for interactive learning
- Python scripts for standalone execution
- Assignment versions for hands-on practice
- Visualization and analysis tools
Contributions are welcome! Please see individual module READMEs for specific guidelines.
This course material is provided for educational purposes.
For questions or issues, please open a GitHub issue or contact the course instructors.