Question

Keras prend en charge les tensorflow et Théano comme back-end: quels sont les avantages / contre de choisir l'un par rapport à l'autre, outre le fait que pas encore toutes les opérations sont mises en œuvre avec le back-end de tensorflow?

Était-ce utile?

La solution 2

It was announced on 2017-09-28 that Theano will be discontinued:

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

After almost ten years of development, we have the regret to announce that we will put an end to our Theano development after the 1.0 release, which is due in the next few weeks. We will continue minimal maintenance to keep it working for one year, but we will stop actively implementing new features. Theano will continue to be available afterwards, as per our engagement towards open source software, but MILA does not commit to spend time on maintenance or support after that time frame.

So TensorFlow is a better option.

Autres conseils

If I were given the option, I would go with Theano.

Reasons:

  • State of the art RNN implementations and API's, which TensorFlow unfortunately doesn't possess, and has a long way to go. And in a domain where RNN's are the trending rage, Theano has a big edge there.
  • Very wide range of implementations. TensorFlow has a long way to catch up. A lot of recent ML models have been done with the help of Theano, so it is something like a standard when it comes to neural networks.
  • Optimized and improved looping: Theano's scan is a wonderful way for looping in neural networks, which makes use of the awesome map-reduce framework. But, I'm pretty sure TensorFlow would improve on this as its creator Jeff Dean is the daddy of Map Reduce. However, as of now; it's Theano
  • Huge edge when it comes to video analytics.

However, TensorFlow supports both the cpp and Python interfaces which might be an advantage with the cpp community. But, when it comes to ML and data science products, Python has been the standard, so it wouldn't be a huge edge IMO.

But, model deployment and ease of use in production is where TensorFlow has the real advantage. As it uses Eigen for improved and easy deployment, it would be a darling for engineers. If it gets compatible with Windows, then you'll see a huge migration. But, I've got used to the Python overhead, I can wait till it gets more polished.

So, Theano for now. I can happily wait for TensorFlow to catch up.

If you are deploying simple to average complexity neural networks, go with Tensorflow. If deep learning, then Theano.

Licencié sous: CC-BY-SA avec attribution
scroll top