Skip to content

YasinRezvani/Hands_On_Machine_Learning_and_Deep_Learning_with_Python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

120 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hands-On Machine Learning and Deep Learning with Python 🚀

This project was conducted under the supervision of Dr. Mansoor Fateh at CVLab SHUT, focusing on deep learning and computer vision research. The work utilized Python along with key libraries including NumPy, Pandas, Matplotlib, and Seaborn for data analysis and visualization, as well as Keras, TensorFlow, and PyTorch for implementing and training deep learning models on standard datasets (MNIST and CIFAR-10). The research aimed to develop practical skills in building and optimizing neural networks while adhering to academic methodologies.


📚 Notebooks & Demos

Below is a list of all notebooks included in this repository. Each notebook is accompanied by a short demo video showcasing its execution and key outputs.


🔢 Loading The MNIST Dataset

A quick start guide to loading and exploring the MNIST handwritten digit dataset using Keras.

Loading_The_MNIST_Dataset.mp4

🧩 Playing With NumPy Library

Introduction to NumPy arrays, indexing, slicing, broadcasting, and vectorized operations.

Playing_With_Numpy_Library.mp4

🧠 NumPy Exercises From Udemy Course

A set of practical exercises to reinforce NumPy skills, including array creation, manipulation, and mathematical operations.

NumPy_Exercises_From_Udemy_Course.mp4

🐼 Playing With Pandas Library

Hands-on introduction to Pandas for data manipulation, filtering, grouping, and handling missing values.

Playing_With_Pandas_Library.mp4

📊 Pandas Exercises From Udemy Course

Practical exercises covering real-world data analysis with Pandas, including aggregation, merging, and pivot tables.

Pandas_Exercises_From_Udemy_Course.mp4

📈 Playing With Scipy Library

Demonstration of scientific computing capabilities using Scipy: optimization, integration, interpolation, and signal processing.

Playing_With_Scipy_Library.mp4

📉 Playing With Matplotlib Library

Visualization techniques using Matplotlib: line plots, scatter plots, histograms, subplots, and custom styling.

Playing_With_Matplotlib_Library.mp4

🎨 Playing With Seaborn Library

Statistical data visualization using Seaborn: distribution plots, pair plots, heatmaps, and categorical plots.

Playing_With_Seaborn_Library.mp4

🧠 Training a Digit Recognition Model Using Keras on the MNIST Dataset

Building and training a fully connected neural network for digit classification (MNIST) using Keras. Includes data preprocessing, model evaluation, and confusion matrix.

Training_a_Digit_Recognition_Model_Using_Keras_on_the_MNIST_Dataset.mp4

🖼️ Training a Recognition Model Using Keras on the CIFAR-10 Dataset

Multi‑layer perceptron (MLP) for image classification on the CIFAR‑10 dataset using Keras. Covers data normalization, model tuning, and performance analysis.

Training_a_Recognition_Model_Using_Keras_on_the_CIFAR_10_Dataset.mp4

🏗️ Training a Convolution+Dense Layer Model Using Keras on CIFAR-10

Extends the previous CIFAR‑10 model by adding convolutional layers to improve feature extraction and classification accuracy.

Training_a_Convolution_Dense_Layer_With_Recognition_Model_Using_Keras_on_the_CIFAR_10_Dataset.mp4

🧩 How to Define Functional and Sequential Keras Models

A comparative guide to defining models using Keras Sequential API vs Functional API, with examples of multi‑input and multi‑output architectures.

How_to_Define_Functional_And_Sequential_Keras_Models.mp4

🔥 Training a Digit Recognition Model Using PyTorch on the MNIST Dataset

Implementation of a neural network for digit classification using PyTorch, including data loaders, custom model definition, training loop, and evaluation.

Training_a_Digit_Recognition_Model_Using_Pytorch_Library_on_the_MNIST_Dataset.mp4

📦 Requirements

To run the notebooks, install the following dependencies:

pip install numpy pandas matplotlib seaborn scipy tensorflow keras torch torchvision jupyter
  • Python 3.8+
  • Jupyter Notebook / JupyterLab
  • Recommended: Create a virtual environment (e.g., conda or venv)

🚀 Getting Started

  1. Clone the repository:

    git clone https://github.com/YasinRezvani/Hands_On_Machine_Learning_and_Deep_Learning_with_Python.git
    cd Hands_On_Machine_Learning_and_Deep_Learning_with_Python
  2. Launch Jupyter:

    jupyter notebook
  3. Open any .ipynb file and run the cells sequentially.


🤝 Contributing

Contributions are welcome! If you find issues or want to add new notebooks, please open an issue or submit a pull request.

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature/amazing-feature).
  3. Commit your changes (git commit -m 'Add some amazing feature').
  4. Push to the branch (git push origin feature/amazing-feature).
  5. Open a Pull Request.

📝 License

This project is for educational purposes. Feel free to use and modify the code for learning and research, but please give appropriate credit.


🙏 Acknowledgements

  • Dr. Mansoor Fateh and Dr. Amirreza Fateh for their guidance and supervision.
  • CVLab SHUT for providing the research environment.
  • The open‑source community for the excellent libraries and datasets used in this work.