Keras is significantly higher-level (in the sense that Python is a higher-level language than C). I find it much easier to write in Keras, and think I'm less likely to make mistakes.
There are a variety of other wrappers for Tensorflow (skflow, tf-slim) that may someday be released as part of the Tensorflow project. But Keras is far more mature than those right now.
- it's much easier to use. Using pure TensorFlow is considered "advanced" and requires familiarity with deep learning, understanding of what a symbolic computation graph is, etc. Keras, meanwhile, is meant to make deep learning more accessible.
- even if you don't care about accessibility, Keras provides higher-level building blocks that speed up your workflow even if you are an expert. It is currently used by dozens of companies and hundreds of researchers, precisely for this reason: it allows quick prototyping.
- with Keras, you can work with both Theano and TensorFlow interchangeably. They complement each nicely in a workflow: TensorFlow has low compilation times, which is great for debugging, and Theano tends to be faster for runtime (especially for RNNs). So you can prototype in TF, train in Theano, then to switch to production you can export the TF model.
> Keras is a minimalist, highly modular neural networks library, written in Python and capable of running on top of either TensorFlow or Theano.
I hear a lot about new ML/neural network frameworks these days and it's difficult to know which complement other frameworks and which build upon other frameworks/create another layer.
I use Keras daily and find it very easy to use. It provides a nice set of examples to learn how to use it. Its also very easy to access the theano/tensorflow backend in a generic way.
Congratulations on hitting 1.0, Keras really looks like the way forward for python ML. I tried to use Keras after doing Andrew Ng's Coursera course but found that I just couldn't connect the dots from what I'd learned on the course to the concepts assumed familiar by the keras documentation though.
Yes, I think we should work on a FAQ to introduce common ML concepts and their implementation in Keras. Any specific concept that you had trouble with?
Cool. It sounds dumb but just shaping the inputs was a problem for me. I wanted an LSTM/RNN but epochs, batches and recurring sequences didn't click together for me. I also had trouble plotting the learning curves.
I came across that glossary a few days ago when looking to solve an RNN problem with a deadline. You may be pleased to know I think I may have solved it by switching to Keras, and this post actually helped unsticking me from a smaller problem too.
Thanks, and congratulations on version 1.0!
Are activations still their own layer? Or are they moving away from that?
I'm brand new to Keras and online tutorials say that "everything, even activations are their own layer" but I can see that all the layers have a activation argument.
Layers have always had an activation argument, this is not new. And yes, there is still an Activation layer. You can specify an activation function via either option.
The functional API removes the need for a dedicated autoencoder layer. But maybe in the future we will have a dedicated autoencoder model, if there's interest in that (with autoencoder-specific methods).
18 comments
[ 3.1 ms ] story [ 50.6 ms ] threadThere are a variety of other wrappers for Tensorflow (skflow, tf-slim) that may someday be released as part of the Tensorflow project. But Keras is far more mature than those right now.
- it's much easier to use. Using pure TensorFlow is considered "advanced" and requires familiarity with deep learning, understanding of what a symbolic computation graph is, etc. Keras, meanwhile, is meant to make deep learning more accessible.
- even if you don't care about accessibility, Keras provides higher-level building blocks that speed up your workflow even if you are an expert. It is currently used by dozens of companies and hundreds of researchers, precisely for this reason: it allows quick prototyping.
- with Keras, you can work with both Theano and TensorFlow interchangeably. They complement each nicely in a workflow: TensorFlow has low compilation times, which is great for debugging, and Theano tends to be faster for runtime (especially for RNNs). So you can prototype in TF, train in Theano, then to switch to production you can export the TF model.
Great job!
I hear a lot about new ML/neural network frameworks these days and it's difficult to know which complement other frameworks and which build upon other frameworks/create another layer.
Congrats on the 1.0 release!
Keep up the great work!
I came across that glossary a few days ago when looking to solve an RNN problem with a deadline. You may be pleased to know I think I may have solved it by switching to Keras, and this post actually helped unsticking me from a smaller problem too. Thanks, and congratulations on version 1.0!
I'm brand new to Keras and online tutorials say that "everything, even activations are their own layer" but I can see that all the layers have a activation argument.