How to switch Backend with Keras (from TensorFlow to Theano)

BackendTheanoKeras

Backend Problem Overview


I tried to switch Backend with Keras (from TensorFlow to Theano) but did not manage. I followed the temps described here but it doesn't work. I created a keras.json in the keras' directory (as it did not exist) but it doesn't change anything when I import it from Python.

Backend Solutions


Solution 1 - Backend

Create a .keras (note the . in front) folder in you home directory and put the keras.json file there.

For example, /home/DaniPaniz/.keras/keras.json (or ~/.keras/keras.json in short) if you are on a UNIX like system (MacOS X, Linux, *BSD). On Windows you want to create the folder %USERPROFILE%/.keras and put the JSON file there.

Alternatively, you can also set the environment variable KERAS_BACKEND:

KERAS_BACKEND=theano python mymodel.py

Solution 2 - Backend

In case you want to change the config permanently, the json is available here: ~/.keras/keras.json and you can change the backend.

To do this dynamically in python 2.7 you can run:

from keras import backend as K
import os

def set_keras_backend(backend):
    
    if K.backend() != backend:
        os.environ['KERAS_BACKEND'] = backend
        reload(K)
        assert K.backend() == backend

set_keras_backend("theano")

Solution 3 - Backend

I had an issue where I could not from keras import backend at all until I set the backend to theano. The provided answers should work if you can import backend, but if not, just use:

import os
os.environ['KERAS_BACKEND'] = 'theano'
import keras as ks
# Using Theano backend.

Solution 4 - Backend

In windows, you need to find .keras folder in your C drive. Most probably, it will be somewhere in C:/users/username/. There you will find .keras folder, it contains a json file, keras.json, open it. You will see:

{
“backend”: “tensorflow”,
“floatx”: “float32”,
“epsilon”: 1e-07
}

more or less. replace 'tensorflow' with 'theano'. and save the file.

Solution 5 - Backend

If you're using windows you can run from command line:

set "KERAS_BACKEND=theano"

Solution 6 - Backend

from keras import backend as K
from os import environ

# user defined function to change keras backend
def set_keras_backend(backend):
    if K.backend() != backend:
       environ['KERAS_BACKEND'] = backend
       reload(K)
       assert K.backend() == backend

# call the function with "theano"
set_keras_backend("theano")

Solution 7 - Backend

Type following on command prompt and press enter:

%USERPROFILE%/.keras/keras.json

Change backend in the opened text file and save it. You are done.

Solution 8 - Backend

For Linux systems, the hidden .keras directory will be created in the user’s home directory. To observe whether or not it has been created, run the following command from your home directory (the -a allows you to see hidden files and directories).

ls –a 

If the directory is there, then cd into it and modify the keras.json file. If it’s not there, then create the directory with

mkdir .keras

Then create the file with

touch keras.json 

Then edit the file to make the config changes you referenced to change the backend engine to Theano.

This process is covered fully in this video.

Solution 9 - Backend

Termux - Android 11 - Finally working with H5py 3.4.0 Keras 2.2.0 Theano 1.0.5 Numpy 1.17.5

I find that packages sometimes do not install when built and --update. ***** You need to manually uninstall / install. .. I fond

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionDaniPanizView Question on Stackoverflow
Solution 1 - BackendnemoView Answer on Stackoverflow
Solution 2 - BackendShashank SinglaView Answer on Stackoverflow
Solution 3 - BackendEngineeroView Answer on Stackoverflow
Solution 4 - BackendpharaskView Answer on Stackoverflow
Solution 5 - Backendshahar_mView Answer on Stackoverflow
Solution 6 - BackendHafizur RahmanView Answer on Stackoverflow
Solution 7 - Backenddevil in the detailView Answer on Stackoverflow
Solution 8 - BackendblackHoleDetectorView Answer on Stackoverflow
Solution 9 - BackendOwen GoossenView Answer on Stackoverflow