Welcome to this course on Customising your models with TensorFlow 2! In this course you will deepen your knowledge and skills with TensorFlow, in order to develop fully customised deep learning models and workflows for any application. You will use lower level APIs in TensorFlow to develop complex model architectures, fully customised layers, and a flexible data workflow. You will also expand your knowledge of the TensorFlow APIs to include sequence models. You will put concepts that you learn about into practice straight away in practical, hands-on coding tutorials, which you will be guided through by a graduate teaching assistant. In addition there is a series of automatically graded programming assignments for you to consolidate your skills. At the end of the course, you will bring many of the concepts together in a Capstone Project, where you will develop a custom neural translation model from scratch. TensorFlow is an open source machine library, and is one of the most widely used frameworks for deep learning. The release of TensorFlow 2 marks a step change in the product development, with a central focus on ease of use for all users, from beginner to advanced level. This course follows on directly from the previous course Getting Started with TensorFlow 2. The additional prerequisite knowledge required in order to be successful in this course is proficiency in the python programming language, (this course uses python 3), knowledge of general machine learning concepts (such as overfitting/underfitting, supervised learning tasks, validation, regularisation and model selection), and a working knowledge of the field of deep learning, including typical model architectures (MLP, CNN, RNN, ResNet), and concepts such as transfer learning, data augmentation and word embeddings.