The objective of this repository is to detail the necessary resources to pass the TensorFlow Developer Certificate in the shortest time possible, minimizing the effort required by centralizing relevant information. You will find study materials, course references, and notebooks examples. Keep in mind that the specified resources aren't free, so by following this guide, you must have a minimum budget. Let's begin!
Consider the Tensorflow Certification Study Guide laid the foundation for this repository. That repo is excellent and includes more information and available materials.
Before moving on to Deep Learning, there are some basic concepts you should manage with ease. First, you need to achieve the minimum understanding of Mathematics (Multivariable Calculus, Linear Algebra, and Probability and Statistics). On the other hand, you need to have strong Python programming skills. Below are the recommended materials to achieve the necessary knowledge in these areas.
Math Courses:
- Mathematics for Machine Learning Specialization
- Introduction to Statistics
- Mathematics for Machine Learning and Data Science
Programing with Python Courses:
- Python for Everybody Specialization
- Python 3 Programming Specialization
- CS50’s Introduction to Programming with Python (free resource)
Now that you have achieved the minimum knowledge requirements, let's jump to the 🌶️ things.
First of all, even though it is not necessary to know about Machine Learning to obtain the Tensorflow Developer Certificate (only Deep Learning is required), the following course turns out to be optional on this path. Nevertheless, it is an excellent specialization to start with, and I strongly recommend doing it.
- Machine Learning Specialization (opcional)
Now, the following specializations are essential to obtain the certificate. The Deep Learning Specialization and The Tensorflow Developer Specialization are indeed complementary. The Deep Learning Specialization develops all the necessary concepts by adopting a more theoretical approach. While the Tensorflow Developer Specialization adopts a more practical and applied approach, applying everything learned in the previous specialization and putting hands into practice.
We will be particularly interested in further developing the material given in this specialization. That is because the Google TensorFlow Developer Certification exam is based on this specialization, so completing it is crucial. All the material listed below is available in the Deep Learning AI public repo: DeepLearning.AI TensorFlow Developer Public Repo. Below you can see all the notebooks given in the courses, excluding their weekly assignments, which are a good practice resource for exam preparation.
Finally, the ⭐ indicates the highly recommended notebooks to review before taking the exam. Try to focus on implementing and writing the models on your own, tuning the hyperparameters, and enhancing the model predictions with the corresponding datasets, like manually defining the learning rate decay. These notebooks are a faithful representation of how the exam exercises are developed, so it's important to achieve good results in their corresponding metrics.
Introduction to TensorFlow for Artificial Intelligence, Machine Learning, and Deep Learning
- The Hello World of Deep Learning with Neural Networks ⭐
- Beyond Hello World, A Computer Vision Example ⭐
- Using Callbacks to Control Training
- Improving Computer Vision Accuracy using Convolutions
- Exploring Convolutions
- Training with ImageDataGenerator
- ImageDataGenerator with a Validation Set
- Effect of Compacted Images in Training
Convolutional Neural Networks in TensorFlow
- Using more sophisticated images with Convolutional Neural Networks
- Data Augmentation
- Data Augmentation on the Horses or Humans Dataset ⭐
- Transfer Learning
- Multi-class Classifier ⭐
Natural Language Processing in TensorFlow
- Tokenizer Basics
- Generating Sequences and Padding
- Tokenizing the Sarcasm Dataset
- Training a binary classifier with the IMDB Reviews Dataset
- Training a binary classifier with the Sarcasm Dataset
- Subword Tokenization with the IMDB Reviews Dataset
- Single Layer LSTM
- Multiple LSTMs
- Using Convolutional Neural Networks
- Building Models for the IMDB Reviews Dataset
- Training a Sarcasm Detection Model using Bidirectional LSTMs ⭐
- Training a Sarcasm Detection Model using a Convolution Layer ⭐
- Generating Text with Neural Networks
- Generating Text from Irish Lyrics
Sequences, Time Series and Prediction
- Introduction to Time Series Plots
- Statistical Forecasting on Synthetic Data
- Preparing Time Series Features and Labels
- Training a Single Layer Neural Network with Time Series Data
- Training a Deep Neural Network with Time Series Data
- Using a Simple RNN for forecasting
- Using a multi-layer LSTM for forecasting
- Using Convolutions with LSTMs
- Predicting Sunspots with Neural Networks (DNN only)
- Predicting Sunspots with Neural Networks ⭐
At this point, we have already covered almost all of the exam topics that you need to know. However, in this section, complementary materials will be developed and, as in previous, we will indicate with ⭐ the must review resources.
Let's start with the most generic material. The official TensorFlow guide (Introduction to TensorFlow) provided by Google gives all the necessary information and presents much more content. Although if we consider all its content, it far exceeds the certification issues, it is always good to have it at hand.
Next, the content of another of my repositories is presented. The TensorFlow Developer Certificate Material repo contains the material that I made while studying for the TensorFlow Developer Certification, which covers everything given in the Coursera Tensorflow Developer Certificate and adds a Multi-Variate Time Series Forecasting notebook. I hope you enjoy the content and find it useful.
- Convolutional Neural Network for Binary Classification
- Convolutional Neural Network for Multi-class Classification
- Transfer learning
- DNN with Word-based Text Encoding
- Conv1D with Subword Text Encoding
- Multiple Model Architectures with Word-based Text Encoding
- Text Generator
- LSTM for Time Series Forcasting
- Conv1D for Time Series Forcasting
- Time Series Forcasting from CSV
- N Steps Multi-Variate Time Series Forcasting (Time Series Forecasting Tutorial)⭐
Finally, this section presents a series of recommendations that are useful to know before taking the exam.
To begin with, the Certificate Handbook is the most remarkable material in this section. It is important to read it in its entirety and fully complete the Skills Checklist.
To consult all the relevant information regarding the exam, you can resort to the official page of the Certification.
The exam takes place in a PyCharm environment. Therefore, it is important to do the setup prior to the test and run the models locally with the corresponding versions specified below.
- PyCharm 2021.3 (either PyCharm Professional or PyCharm Community Edition)
- Python 3.8.0
- tensorflow==2.9.0
- tensorflow-datasets==4.6.0
- Pillow==9.1.1
- pandas==1.4.2
- numpy==1.22.4
- scipy==1.7.3
The exam lasts 5 hours and has a total of 5 exercises where the exercises are incremental in difficulty. The first exercise (Number 1) is the easiest, and the last (Number 5) is the hardest.
In turn, the minimum score per exercise to pass the exam is 3/5, so beware if any score is below 3. The scores are available in real-time, so you will know your exam score before handing it in.
The exam only evaluates the saved model (model.h5) where, based on the model, it performs forecasting and, based on the metrics achieved in its test data set, assigns a result. Therefore, it is possible to train and download the model in Google Colab as long as you upload the train and test data to Colab.
From the above, we can highlight two things.
- First, the exam score is subject to randomness. So it is possible to obtain a good score by having a bad model that makes good predictions in the evaluating subset of data.
- Second, using Google Colab and your computer, it is possible to train two models from different exercises at the same time, optimizing the time spent on the model's training.
You must take special care of the dimensionality of the model's output. It may be that it trains locally, but if it does not have the specified dimensionality for each exercise, the system will not be able to evaluate it.
Finally, the model cannot be excessively large. If so, the system will not evaluate it.
Please PR the repo for more FAQs