How I Prepared for the TensorFlow Developer Certification
I passed the TensorFlow Developer Certificate exam! Here is how I studied and prepared for it. Please note I was already familiar with TensorFlow and Deep Learning prior to taking the exam, so this post is most applicable to those with similar ML knowledge and skills level.
Here is a summary of what I learned from studying illustrated with sketchnotes
First of all, taking the DeepLearning.ai TensorFlow Developer Professional Certificate Specialization courses on Coursera was the most helpful preparation. Thank you Laurence Moroney and Dr. Andrew Ng!
There are four courses in this TensorFlow specialization:
- Intro to TensorFlow
- Convolutional Neural Networks (CNN)
- Natural Language Processing (NLP)
- Sequences, Time Series and Prediction
These courses focus on the “how” (to use TensorFlow 2.x) while explains some of the basics of “why”. If you are not familiar with deep learning then I recommend you first take Dr. Andrew Ng’s Deep Learning Specialization with depth in math and details of how things work under the hood. If you are not familiar with TensorFlow, I recommend you study the tensorflow.org tutorials first.
I have been working with TensorFlow since 2016 and I’m fairly familiar with computer vision; in fact I have created blog posts and video courses on some of these topics. My knowledge on NLP and Time Series is limited to learning from a few online courses. So I spent very little time on #1 Intro, small amount of time on #2 CNN, and most of the time on #3 NLP and #4 Time Series.
Estimated time for completion for the entire specialization is 16 weeks, with 4 weeks materials per course. On average each “1 week” lesson took me less than 30 minutes to watch the videos and pass the quizzes. Each programming exercise took me 30 minutes to a few hours to finish, with some delays partly due to figuring out how to pass the grader which has very specific requirements on the network architecture — input and output layer shapes etc. The programming assignments were fairly straightforward, if you follow the video lectures and the provided reference notebooks. I completed the courses in about 6 weeks although hypothetically if you (assuming expert knowledge) have blocks of time with undivided attention, you could finish in one or two weeks. On the other hand, if you are a beginner in TensorFlow and Deep Learning, you may need more than 16 weeks to complete.
TensorFlow Developer Certificate Website
On the TensorFlow Developer Certificate website, you will find two very useful documents:
- The Candidate Handbook — skill checklist and logistics on how to sign up for the exam.
- The Environment Setup — detailed info on how to set up your environment for the exam. How to prepare a virtual environment to test it out.
Once you register for the exam and pay the $100 fee. You will receive an email notification with a detailed exam instructions guide, which is confidential only to those who registered. The guide also contains environment setup, and troubleshooting steps.
I found these 2 blog posts from the community very helpful:
- How to Pass the TensorFlow Developer Certificate Exam
- I just passed the TensorFlow certification… here are some tips for you.
Day before the exam
I like to keep things organized and prepared. After I finish all 4 courses on Coursera. I spent one day to prepare for the exam:
- Reading all 3 docs (handbook, environment setup and exam instructions) mentioned above thoroughly.
- Reviewing my notes I took from the Coursera courses.
- Briefly looking through all the Jupyter notebooks from my study, both the reference notebooks and programming assignment notebooks.
I wrote a lot of notes while watching the videos. Writing them down helped me to remember. I also wrote a lot of my own notes, for example,
- compare and contract different ways of solving the same problem
- hyper parameter tuning results
- note each error I encounter or any concept that seemed fuzzy to me.
As I finish each Coursera lesson, I keep all the reference notebooks and assignment notebook in a private repo on GitHub so that I can easily search through the notebooks and my notes.
You will need to set up a specific version of Python (3+). For me it was 3.8.0 that was tested for the exam. Also need to install PyCharm because that’s where the exams would take place. If you are new to PyCharm then you should familiarize yourself before the exam. I’m fairly familiar with PyCharm because 1) it’s made by JetBrain with a similar UI as Android Studio 2) I’ve used it for ML training before; however I still spent time practicing in it since I haven’t used PyCharm for a few months.
I opened all 3 pdf files as tabs from Adobe Acrobat so that they are easily accessible to me. I keep all my Jupyter notebooks in a GitHub repo so that I can easily search through them. Note: the exam is open book so you can use any resources available to you.
In PyCharm, I clicked on “Start Exam” to start the certification process. PyCharm then got populated with all the exam content. The grading was based on 5 models that I need to train, with increasing difficulty levels. For the first 2 I just PyCharm with CPU, then the other ones I used Colab (with GPU) for training and copied the .h5 models back into the exam folders for testing.
I was given 5 hours to complete the exam although I was able to complete within 2 hours. For each model I could test my score directly in PyCharm. Once I was certain that I had 5/5 score for each one, I ended the exam and submitted my results. Shortly after I received email notification that I have passed the certification!