3 ms·
> Keras is pretty much the best way to do almost anything these days What makes Keras take the advantage?
by denzil_correa 10y ago
> Keras is pretty much the best way to do almost anything these days
What makes Keras take the advantage?
- stephanheijl 10y agoVery extensible API, accessible and widely used programming language (Python), the ability to use both Theano and Tensorflow as a backend and easy to implement non-linear neural networks (where data is split and merged at will) all contribute to this. Using Keras means you will almost never need to implement some custom layer or function, whilst sacrificing very little performance-wise.
- nl 10y agoIt's a well designed API for using deep neural networks rather than an API for doing optimized mathematical operations. Compare how you build some vaguely comparable models in Keras[1] and raw TensorFlow[2]. Keras uses TensorFlow (or Theano) underneath, so there is no performance penalty. It's like in Python machine learning, most people use Scikit instead of implementing things in numpy. [1] https://github.com/fchollet/keras/blob/master/examples/mnist_mlp.py#L39 https://github.com/fchollet/keras/blob/master/examples/mnist... [2] https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/tutorials/mnist/mnist_softmax.py#L39 https://github.com/tensorflow/tensorflow/blob/master/tensorf...
- denzil_correa 10y agoThanks! Your example to explain the differences makes me more leaning towards Keras. It feels like Scikit for Deep Learning.
- nl 10y agoYes, that's a decent analogy. If you are already familiar with Scikit then TFLearn is worth looking at too.
- chestervonwinch 10y agoTheano itself is more like a language, not a deep learning framework. There is no NeuralNetworkClassifier class, for example. Although, you could write a neural network library / framework using Theano, and it would have all the benefits of Theano (code compiled for the GPU, various common neural net ops available, etc.), which is what it looks like the Keras folks have done. I took a stab at this a while ago (1), but I didn't keep up on it. I haven't used Keras much, but it looks like it fills a much needed gap, which I'm glad for. (1): https://github.com/notmatthancock/neural_network https://github.com/notmatthancock/neural_network