Welcome to the GitHub repository for the Practical Deep Learning Course. Here you will find all the code, notebooks, and resources used throughout the course.
The content in this repository is divided into five key modules, focusing on various aspects of Deep Learning. Each module includes Jupyter notebooks combining theory, code, and explanations.
-
Module 1: Deep Learning Fundamentals:
class/Fundamentals
- NN_Fundamentals: This notebook introduces the basics of Deep Learning using TensorFlow. You will learn about TensorFlow's Sequential and Functional API, which are key tools for building neural networks.
- Prevent_Overfitting: Here we explore various Regularization Techniques that can prevent overfitting in neural networks.
-
Module 2: Convolutional Neural Networks (CNNs):
class/CNN
- Introduction_to_CNN.ipynb: This notebook provides an introduction to Convolutional Neural Networks (CNNs) and their applications in Image Processing.
-
Module 3: Recurrent Neural Networks (RNNs):
class/RNN
- Introduction_to_RNN_Time_Series.ipynb: Here we introduce Recurrent Neural Networks (RNNs) and show how they can be used for Time Series Analysis.
-
Module 4: Natural Language Processing (NLP) with Deep Learning:
class/NLP
- text_classification_rnn.ipynb: This notebook provides an introduction to the embedding layer for text classification using RNNs and CNNs.
- semantic_search_QA_clustering.ipynb: In this notebook explores how Sentence Transformers can be utilized for Semantic Search and Question-Answering tasks.
- Image_search.ipynb: This notebook explores the application of Sentence Transformers and the CLIP model to create an Image Search engine. You will learn how to leverage these models to associate textual descriptions with images, enabling image search capabilities.
-
Module 5: Generative Models:
class/generative
In addition to these practical modules, we provide a brief theoretical overview in the Deep Learning with TensorFlow notebook. This resource offers a concise recap of essential deep learning concepts, acting as a handy reference guide.
The Jupyter notebooks provided in this course can be run either locally on your machine or remotely on Google Colab
To install TensorFlow and TensorFlow-hub, run:
pip install tensorflow
pip install --upgrade tensorflow-hub
For more details see TensorFlow installation instructions
To install all the dependencies, run:
pip install -r requirements.txt
You can upload the notebook directly in Google Colab or you can click in the Colab icon at the beginning of each notebook:
Run in Google Colab | View Source on GitHub |
In addition to running the notebooks locally or on Google Colab, you can also run them in a Docker container. This ensures that all dependencies are satisfied in a self-contained environment, which can make it easier to get up and running with the project.
Follow these steps to build and run the Docker image:
Install Docker on your machine. You can download it for Mac, Windows, or Linux from the official Docker website.
Open your terminal, navigate to the directory containing the Dockerfile and run the following command to build the Docker image:
docker build -t deep-learning-course .
This command builds an image and tags it as "deep-learning-course".
Run the Docker image with the following command:
docker run -p 4000:8888 deep-learning-course
To persist your changes and have your notebooks saved outside of Docker (on Windows, you might have to replace
$(pwd)
with ${pwd}
or with the full path to your directory):
docker run -p 4000:8888 -v "$(pwd)":/app deep-learning-course
This command maps the port 8888 inside Docker as port 4000 on your machine.
Once your Docker image is up and running, you can access the Jupyter notebooks by visiting http://localhost:4000 in your web browser. You'll see a list of notebooks that you can click on to view, run, and interact with.