Ответ 1
Фон
API-интерфейс Estimators был добавлен в Tensorflow в версии 1.1 и обеспечивает абстракцию высокого уровня в отношении операций основного уровня Tensorflow. Он работает с экземпляром Estimator, который представляет собой высокоуровневое представление TensorFlow полной модели.
Keras похож на API Estimators, поскольку он абстрагирует компоненты модели глубокого обучения, такие как слои, функции активации и оптимизаторы, чтобы упростить работу разработчиков. Это библиотека на уровне модели и не обрабатывает операции на низком уровне, что является задачей библиотеки тензорных манипуляций или бэкэндов. Keras поддерживает три бэкэнда - Tensorflow, Theano и CNTK.
Keras не был частью Tensorflow до версии 1.4.0 (2 ноября 2017 года). Теперь, когда вы используете tf.keras
(или говорите о "Tensorflow Keras"), вы просто используете интерфейс Keras с бэкэндом Tensorflow для создания и обучения вашей модели.
Таким образом, API Estimator и Keras API предоставляет API высокого уровня для низкоуровневого ядра Tensorflow API, и вы можете использовать либо для обучения своей модели. Но в большинстве случаев, если вы работаете с Tensorflow, вы должны использовать API оценщиков по причинам, перечисленным ниже.
распределение
Вы можете проводить распределенное обучение на нескольких серверах с помощью API Estimators, но не с Keras API.
Из руководства Tensorflow Keras в нем говорится, что:
API Estimators используется для обучения моделей для распределенных сред.
И из Руководства Оценщиков Тензорпанов говорится, что:
Вы можете запускать модели на основе Estimator на локальном хосте или распределенной многосерверной среде без изменения вашей модели. Кроме того, вы можете запускать модели на основе Estimator на процессорах, графических процессорах или TPU без перекодирования вашей модели.
Предварительно оцененный оценщик
В то время как Keras предоставляет абстракции, которые упрощают создание моделей, вам все равно придется писать код для создания вашей модели. С оценками Tensorflow предоставляет предварительные оценки, которые являются моделями, которые вы можете использовать сразу, просто подключив гиперпараметры.
Предварительно сделанные Оценки похожи на то, как вы будете работать с scikit-learn
. Например, tf.estimator.LinearRegressor
из Tensorflow похож на sklearn.linear_model.LinearRegression
из scikit-learn
.
Интеграция с другими инструментами Tensorflow
Tensorflow предоставляет инструмент vistualzation под названием TensorBoard, который помогает визуализировать ваш график и статистику. Используя Estimator, вы можете легко сохранить резюме для визуализации с помощью Tensorboard.
Преобразование модели Keras в оценщик
Чтобы перенести модель tf.keras.estimator.model_to_estimator
в Оценщик, используйте метод tf.keras.estimator.model_to_estimator
.