Abstractions are a very popular tool used in the process of programming and software development. In a very high-level sense, an abstraction refers to the process of isolating and describing the central idea of a particular task or set of tasks without necessarily specifying the physical, spatial, or temporal details. When done right, an abstraction can significantly reduce the amount of code that needs to be written for a particular task. It also boosts the reusability of existing code and makes it compatible with TF 2.0.
While working with machine learning systems, there are some common high-level tasks, such as training data, modeling, model evaluation, prediction, model storing, and model loading, that are common across a wide variety of tasks. An end programmer might also want to just modify one small component of the application while leaving the...