Currently, Keras supports two such backends – TensorFlow and Theano.
The current version of Keras (v1.1.0 at the time of this writing) uses TensorFlow by default.
Most models written on top of Keras can be switched to a different backend without changes – at least it’s what’s said in the documentation. I’m yet to test this.
Which backend Kesas will use is defined in the Keras config file, which is located in the .keras directory in your home directory:
e.g.: on linux it would be ~/.keras/keras.json and on windows you can get to it on %USERPROFILE%\.keras\keras.json
For the default of using the TensorFlow backend, use the following config,
{
"image_dim_ordering": "tf",
"epsilon": 1e-07,
"floatx": "float32",
"backend": "tensorflow"
}
Notice the "backend" is set to "tensorflow" and "image_dim_ordering" is set to "tf".
To use the Theano backend, use the following,
{
"image_dim_ordering": "th",
"epsilon": 1e-07,
"floatx": "float32",
"backend": "theano"
}
Apart from the obvious "backend": "theano", note that "image_dim_ordering" is set to "th".
See my new post to see what the image_dim_ordering parameter in Keras does, and why is it important to set it properly.
Update: If you use Jupyter notebooks, and need to switch between TensorFlow and Theano backends quite often, fellow blogger desertnaut has a solution to dynamically switch the backend. Check out his solution at: Dynamically switch Keras backend in Jupyter notebooks
Related posts:
What is the image_dim_ordering parameter in Keras, and why is it important
Related links:
https://keras.io/backend/
Build Deeper: Deep Learning Beginners' Guide is the ultimate guide for anyone taking their first step into Deep Learning.
Get your copy now!
I have written a short post on how to dynamically switch between Keras backends in Jupyter notebooks - you may find it useful:
ReplyDeletehttp://www.nodalpoint.com/switch-keras-backend/
@desertnaut Thanks,
ReplyDeleteAbility to switch the backend dynamically would be really useful!
I will add a note to the post pointing to your post so other readers too would see your solution.
Thanks for the detailed guide. I had to additionally do 'pip install np_utils' to get it working. Cheers, Oliver
ReplyDelete