
This video provides an overview of the entire course.
This video shows how to install TensorFlow 2 and other necessary libraries
• Get to know the recommended OS and Python version
• Install Anaconda
• Install TensorFlow 2 (TF 2) and GPU TensorFlow 2
In this video, the main features and syntax of TensorFlow 2 are introduced.
• Generate and display some toy data
• Implement a linear model in TF 2
• Highlight the TF 2 features we used
This video introduces the New York Airbnb dataset that we are going to use.
• Download the dataset from Kaggle
• Understand the need for a plan
• Write an outline of the steps we are going to take
In this video, we implement a simple linear model and apply it on our Airbnb dataset.
• Load the Airbnb dataset
• Preprocess the dataset
• Adapt and run the linear model from the previous videos
In this video, we change our model to an artificial neural network (ANN), in hopes of obtaining better results.
• Perform some data analysis through visualizations
• Use TF 2 Keras to implement an ANN
• Run the ANN on our dataset
In this video, we improve our ANN by exploring better activation functions, dropout and get a new optimizer.
• Understand the necessary changes to the code
• Understand the usefulness of the new concepts used
• Run the optimized ANN and view the new results
In this video, we add more metrics to be reported during training and testing of our ANN.
• Understand what metrics are and why they are useful
• Add the metrics to the code
• Run the code and view the new metrics reported
In this video, we clean up our code and make it look similar to how a production-quality solution would look like.
• Remove the unneeded cells from the notebook
• Add model saving and loading
• Discuss the conclusions
In this video, we identify and take a look at possible Kaggle data for this task.
• Find the necessary data
• Investigate the dataset
• Download the dataset
In this video, we perform some initial data analysis and write up a plan for what we are going to do with this dataset and what for.
• Perform initial data analysis and investigation
• Think a bit about what kind of models we are going to use
• Plan the necessary steps for achieving our goal
This video introduces Google Colab, a free, no-setup required alternative to Jupyter. We see its advantages and disadvantages and continue the rest of the videos in it.
• Create a Google Colab file
• Learn how to install packages in Colab notebooks
• Understand the advantages and disadvantages of Colab
In this video, we set up data preprocessing, visualization, and basic training on Google Colab.
• Upload and load the dataset using Colab
• Perform data preprocessing and show correlations plot
• Run training with a basic ANN
In this video, we analyze some important ANN features in TF 2, such as more advanced metrics, class weights, model checkpoints, and validation sets.
• Introduce more metrics and the class weight computation
• Introduce model checkpointing and validation sets
• Discuss the importance of each concept
This video discusses the process of introducing a deeper network, with multiple layers and more neurons per layer, and the effects this has on results.
• Increase the number of layers and their sizes
• Investigate the effects of dropout on overfitting
• Drawing the necessary conclusions: a deeper network does not always help
In this video, we show how we can use TensorBoard to visualize metrics in real time, and in a graphical format.
• Set up TensorBoard in Google Colab
• Visualize the metrics in TensorBoard
• Control the outputs in TensorBoard
In this video, we take a look at how other people have tackled this task on Kaggle. We shall learn from their approaches what the best way to do things is.
• Look up existing solutions on Kaggle
• Find a good solution
• Analyze and discuss the chosen Kaggle solution
In this video, we introduce Natural Language Processing (NLP), why it is important in general, and why our project itself is important.
• Understand the NLP basics, such as text classification
• Understand that NLP also means automated translation and sentiment analysis
• Understand that NLP can also deal with summarization and text generation
This video discusses the importance of data preprocessing in the context of NLP and applies the concepts on a Kaggle dataset.
• Identify, download, and load the Kaggle dataset
• Set up a CountVectorizer from scikit-learn
• Discuss the obtained results and their meaning
In this video, we show how we can write a full text classification pipeline, with data preprocessing and an ANN that performs the classification.
• Perform the data loading and preprocessing
• Set up the training with an ANN, using a proper loss function
• Discuss the limitations of the CountVectorizer
In this video, we go over various text generation methods that will help us in implementing our project.
• Recap what we've seen so far and why that will not be enough here
• Introduce generative models
• Understand the concepts of recurrent neural networks (RNNs)
In this video, we implement a basic RNN for text generation and get it to output some original text.
• Set up the network for text generation
• Train the network on our data
• Discuss the reason for the currently bad quality of generated text
In this video, we switch back to Jupyter and introduce the concept of federated learning.
• Understand a limitation of Colab that made us switch back to Jupyter
• Understand the concept of federated learning
• Run an example of federated learning
In this video, we introduce Reinforcement Learning (RL) and explain how it is different from what we have learned about so far, and where it has been successfully applied until now.
• Explain RL and how it differs from supervised learning
• Showcase the current successful applications of RL, such as AlphaGO
• Understand how RL can be done in TF using the TF-Agents library
This video introduces the Gym framework, which provides us with various environments together with user friendly interfaces that we can use for reinforcement learning.
• Install Gym
• Load a basic environment and explore it
• Understand what each attribute of the environment represents
In this video, we explore the actual Gym environment for Pacman that we are going to use in our project and learn how to use it correctly.
• Load the Pacman Environment
• Display the environment in real time inside Jupyter
• Perform random actions in the environment to see how it plays out
In this video, we present TF-Agents in more detail, how it integrates with Gym and why we have chosen it for our project.
• Understand what TF-Agents is in relation to RL and TF 2
• Understand certain disadvantages of TF-Agents
• Understand how TF-Agents works in relation to Gym environments
In this video, we apply TF-Agents on our Pacman environment and get some initial results.
• Perform the necessary environment preprocessing
• Set up the necessary elements for instantiating an agent
• Train the agent and obtain results
This video takes us a step back and analyzes the various agents that can be used, explains why some agents might be better than others and what our plan is for obtaining better results.
• Understand the disadvantages of the DQN agent we've used so far
• Plan to use the PPO agent next
• Explore other possibilities regarding agents and environments
In this video, we put everything together and train an agent that plays the game well by making use of the EasyAgents library, that is built on top of TF-Agents and simplifies the use of RL algorithms.
• Understand the advantages of using a higher level library such as EasyAgents
• Set up training with the EasyAgents implementation of PPO
• Explore the resulting agent and how well it plays the game
In this video, we introduce the main ideas of transfer learning – using a network trained on a large dataset for a general problem to make training much faster for a problem. We discuss the advantages, disadvantages, and how it works in TF 2.
• Understand the intuition behind transfer learning
• Understand the caveats of this approach
• Understand how it works in TF 2 at a high level
In this video, we find and download an appropriate dataset for our task, load it, and set up the necessary TF 2 preprocessing steps.
• Find and download the Kaggle dataset
• Set up the appropriate pipeline for working with such a dataset in TF 2
• Perform some data visualizations
In this video, we pick the MobileNetV2 model pretrained on the ImageNet dataset as a baseline for our transfer learning task.
• Set up the MobileNetV2 pretrained model
• Perform the necessary data preprocessing adaptations
• Explore the model's results without any additional training
This video shows how we can improve predictions on our own dataset by adding some of our own layers, and training some of the layers in the resulting model.
• Add the necessary layers to the pretrained model
• Change the preprocessing code so that it is easier to work with
• Run the training and analyze the results
In this video, we analyze how well our current approach is doing and refine it by making changes to our choice of base model and a few other tweaks.
• Analyze the current results in relation to the dataset
• Change the base model to the Xception model
• Analyze the new results and discuss further improvement options
In this video, we draw some conclusions about the entire course and suggest further options for improving one's knowledge of TF 2 and machine learning.
• Understand the important of continuing our studies
• Understand the importance of asking questions being inquisitive
• Remember to have fun and try to work on some useful personal projects
TensorFlow is the world’s most widely adopted framework for Machine Learning and Deep Learning. TensorFlow 2.0 is a major milestone due to its inclusion of some major changes making TensorFlow easier to learn and use such as “Eager Execution”. It will support more platforms and languages, improved compatibility and remove deprecated APIs.
This course will guide you to upgrade your skills in Machine Learning by practically applying them by building real-world Machine Learning projects.
Each section should cover a specific project on a Machine Learning task and you will learn how to implement it into your system using TensorFlow 2. You will implement various Machine Learning techniques and algorithms using the TensorFlow 2 library. Each project will put your skills to test, help you understand and overcome the challenges you can face in a real-world scenario and provide some tips and tricks to help you become more efficient. Throughout the course, you will cover the new features of TensorFlow 2 such as Eager Execution. You will cover at least 3-4 projects. You will also cover some tasks such as Reinforcement Learning and Transfer Learning.
By the end of the course, you will be confident to build your own Machine Learning Systems with TensorFlow 2 and will be able to add this valuable skill to your CV.
About the Author
Vlad Ionescu is a lecturer at Babes-Bolyai University. He has a PhD in machine learning, a field he is continuously researching and exploring every day with technologies such as Python, Keras, and TensorFlow.
His philosophy is “If I can't explain something well enough for most people to understand it, I need to go back and understand it better myself before trying again”. This philosophy helps him to give of his best in his lectures and tutorials.
He started as a high school computer science teacher while he was doing his Masters over 5 years ago. Right now, he teaches various university-level courses and tutorials, covering languages, technologies, and concepts such as Python, Keras, machine learning, C#, Java, algorithms, and data structures.
During his high school and college years, he participated in many computer science contests and Olympiads and was active on some online judge sites. He also owns a StackOverflow gold badge in the Algorithm tag.