59 votes

Quelle est la différence entre un modèle Keras Tensorflow et un estimateur?

Les modèles Tensorflow Keras et les estimateurs Tensorflow sont capables de former des modèles de réseau neuronal et de les utiliser pour prédire de nouvelles données. Ce sont deux API de haut niveau qui se trouvent au-dessus de l'API TensorFlow de base de bas niveau. Alors, quand dois-je utiliser l'un sur l'autre?

85voto

d4nyll Points 4092

Arrière-plan

Les Estimateurs de l'API a été ajouté à Tensorflow dans la Version 1.1, et fournit un haut niveau d'abstraction plus bas niveau Tensorflow opérations de base. Il fonctionne avec un Estimateur de l'instance, qui est TensorFlow de haut niveau de la représentation d'un modèle complet.

Keras est similaire pour les Estimateurs de l'API en ce qu'elle résumés apprentissage en profondeur du modèle de composants comme les couches, les fonctions d'activation et les optimiseurs, pour le rendre plus facile pour les développeurs. C'est un modèle au niveau de la bibliothèque, et ne pas manipuler les opérations de bas niveau, ce qui est le travail de tenseur de bibliothèques de manipulation, ou de backends. Keras prend en charge trois backends - Tensorflow, Théano et CNTK.

Keras ne faisait pas partie de Tensorflow jusqu'à la Version 1.4.0 (2 Novembre 2017). Maintenant, lorsque vous utilisez tf.keras (ou de parler de "Tensorflow Keras'), vous êtes tout simplement à l'aide de la Keras interface avec le Tensorflow backend pour construire et former votre modèle.

Donc, à la fois l'Estimateur de l'API et Keras API fournit une API de haut niveau plus bas niveau de base Tensorflow API, et vous pouvez utiliser soit pour former votre modèle. Mais dans la plupart des cas, si vous travaillez avec Tensorflow, vous souhaitez utiliser les Estimateurs de l'API pour les raisons énumérées ci-dessous.

Distribution

Vous pouvez effectuer distribué de formation sur plusieurs serveurs avec les Estimateurs de l'API, mais pas avec Keras API.

À partir de la Tensorflow Keras Guide, il est dit que:

Les Estimateurs de l'API est utilisée pour les modèles de formation pour les environnements distribués.

Et à partir de la Tensorflow Estimateurs Guide, il est dit que:

Vous pouvez exécuter l'Estimateur à base de modèles sur un hôte local ou sur un système distribué multi-serveur environnement sans changer de modèle. En outre, vous pouvez exécuter l'Estimateur basé sur les modèles sur les Cpu, Gpu, ou TPUs sans recodage de votre modèle.

Pré-faites Estimateur

Alors que Keras fournit des abstractions qui facilite la création de vos modèles de plus facile, il vous reste à écrire le code pour créer votre modèle. Avec les Estimateurs, les Tensorflow offre Pré-faites des Estimateurs, qui sont des modèles que vous pouvez utiliser tout de suite, simplement en branchant le hyperparameters.

Pré-faites Estimateurs sont semblables à comment vous pouvez travailler avec scikit-learn. Par exemple, l' tf.estimator.LinearRegressor de Tensorflow est similaire à l' sklearn.linear_model.LinearRegression de scikit-learn.

L'intégration avec d'Autres Outils Tensorflow

Tensorflow fournit un vistualzation outil appelé TensorBoard qui vous permet de visualiser votre graphique et les statistiques. À l'aide d'un Estimateur, vous pouvez facilement enregistrer des résumés pour être visualisé avec Tensorboard.

La conversion de Keras Modèle de l'Estimateur

Pour migrer un Keras modèle à un Estimateur, l'utilisation de l' tf.keras.estimator.model_to_estimator méthode.

-1voto

Jane Li Points 1

Dans ma compréhension, l'estimateur est pour les données d'entraînement à grande échelle et de servir à la production sur le but, parce que le cloud ML moteur ne peut accepter l'estimateur.

La description ci-dessous à partir de l'une des tensorflow doc mentionné ceci:

" Les Estimateurs de l'API est utilisée pour les modèles de formation pour les environnements distribués. Cette cibles de l'industrie des cas d'utilisation, par exemple la distribution de la formation de grands ensembles de données qui peuvent exporter un modèle pour la production. "

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X