Choisir entre TensorFlow ou Theano comme backend pour Keras

20

Keras prend en charge TensorFlow et Theano en tant que backend: quels sont les avantages / inconvénients de choisir l'un par rapport à l'autre, outre le fait que toutes les opérations ne sont actuellement pas implémentées avec le backend TensorFlow?

Franck Dernoncourt
la source
4
Pour en revenir à cela. Je pense que je vais changer mon opinion aujourd'hui: D
Dawny33
@ Dawny33 merci je vais surveiller la réponse mise à jour :-)
Franck Dernoncourt

Réponses:

9

Si on me donnait l'option, j'irais avec Theano .

Les raisons:

  • Des implémentations RNN et des API de pointe , que TensorFlow ne possède malheureusement pas, et ont un long chemin à parcourir . Et dans un domaine où les RNN sont à la mode, Theano a un gros avantage là-bas.
  • Très large gamme d'implémentations . TensorFlow a un long chemin à parcourir. Beaucoup de modèles ML récents ont été réalisés avec l'aide de Theano, c'est donc quelque chose comme une norme en ce qui concerne les réseaux de neurones.
  • Bouclage optimisé et amélioré : le scan de Theano est un excellent moyen de boucler dans les réseaux de neurones, qui utilise le cadre génial de réduction de carte. Mais, je suis presque sûr que TensorFlow améliorerait cela car son créateur Jeff Dean est le papa de Map Reduce. Cependant, à partir de maintenant; c'est Theano
  • Un avantage énorme en matière d'analyse vidéo.

Cependant, TensorFlow prend en charge les interfaces cpp et Python, ce qui pourrait être un avantage pour la communauté cpp. Mais, en ce qui concerne le ML et les produits de science des données, Python a été la norme, donc ce ne serait pas un énorme IMO de pointe.

Mais, le déploiement de modèles et la facilité d'utilisation en production sont les avantages réels de TensorFlow. Comme il utilise Eigen pour un déploiement amélioré et facile, ce serait un chouchou pour les ingénieurs. S'il est compatible avec Windows, vous verrez une énorme migration. Mais, je me suis habitué aux frais généraux de Python, je peux attendre jusqu'à ce qu'il soit plus raffiné.

Alors, Theano pour l'instant. Je suis heureux d'attendre que TensorFlow se rattrape.

Si vous déployez des réseaux de neurones de complexité simple à moyenne, optez pour Tensorflow. Si l'apprentissage en profondeur, alors Theano.

Dawny33
la source
1
Compte tenu des améliorations apportées à TensorFlow au cours des 1,5 dernières années, avez-vous maintenant une opinion différente?
Seanny123
1
@ Seanny123 Je le fais bien sûr. Je n'ai pas eu le temps de la poser comme réponse: D. Je vais bientôt l'écrire :). [PS indépendant: Checkout Pytorch aussi]
Dawny33
8

Il a été annoncé le 28/09/2017 que Theano serait interrompu:

Depuis https://groups.google.com/forum/#!topic/theano-users/7Poq8BZutbY (Yoshua Bengio):

Après près de dix ans de développement, nous avons le regret d'annoncer que nous mettrons un terme à notre développement Theano après la sortie de la 1.0, prévue pour les prochaines semaines. Nous continuerons la maintenance minimale pour qu'elle fonctionne pendant un an, mais nous arrêterons de mettre activement en œuvre de nouvelles fonctionnalités. Theano continuera à être disponible par la suite, conformément à notre engagement envers les logiciels open source, mais MILA ne s'engage pas à consacrer du temps à la maintenance ou au support après cette période.

TensorFlow est donc une meilleure option.

Franck Dernoncourt
la source