" The Estimators API is used for training models for distributed environments. This targets industry use cases such as distributed training on large datasets that can export a model for production."
So both the Estimator API and Keras API provides a high-level API over low-level core Tensorflow API, and you can use either to train your model. But in most cases, if you are working with Tensorflow, you'd want to use the Estimators API for the reasons listed below.
Distribution
You can conduct distributed training across multiple servers with the Estimators API, but not with Keras API.
Pre-made Estimator
Whilst Keras provides abstractions that makes building your models easier, you still have to write code to build your model. With Estimators, Tensorflow provides Pre-made Estimators, which are models which you can use straight away, simply by plugging in the hyperparameters.
Pre-made Estimators are similar to how you'd work with scikit-learn
. For example, the tf.estimator.LinearRegressor
from Tensorflow is similar to the sklearn.linear_model.LinearRegression
from scikit-learn
.
Integration with Other Tensorflow Tools
Tensorflow provides a vistualzation tool called TensorBoard that helps you visualize your graph and statistics. By using an Estimator, you can easily save summaries to be visualized with Tensorboard.
Converting Keras Model to Estimator
To migrate a Keras model to an Estimator, use the tf.keras.estimator.model_to_estimator
method