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?
Réponses
Trop de publicités?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.
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. "