在 Ipython Notebook 中将 keras 后端更改为 Theano

changing keras backend to Theano in Ipython Notebook

我确实按照 Keras documentation page 上的说明更改了 keras.json 文件。但是在我的 Ipython 笔记本中,它仍然说我正在使用 Tensorflow 作为后端。

也许这与Jupyter设置有某种关系?请帮忙。我什至不知道如何找出问题的根源。谢谢!

您可以在笔记本的开头尝试以下操作:

import os
os.environ["KERAS_BACKEND"] = "theano"
import keras; import keras.backend
if keras.backend.backend() != 'theano':
    raise BaseException("This script uses other backend")
else:
    keras.backend.set_image_dim_ordering('th')
    print("Backend ok")

基本上环境 KERAS_BACKEND 可以在某个时候被 Jupyter 覆盖,所以这是在导入 keras.backend.

之前强制它成为某种东西的一种方法

python 2.7 中的工作原理 - 动态更改 Keras 后端

# When I executed the suggestion -- the output I got..
BaseExceptionTraceback (most recent call last)
<ipython-input-7-c4352a2d60e6> in <module>()
      3 import keras; import keras.backend
      4 if keras.backend.backend() != 'theano':
----> 5     raise BaseException("This script uses other backend")
      6 else:
      7     keras.backend.set_image_dim_ordering('th')

BaseException: This script uses other backend

-- 不确定,如果我们不能动态更改后端,这会有什么帮助。

-- 相反,帮助我的是以下内容:

代码在iPython

from keras import backend; print(backend._BACKEND)
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
print ("Change Keras Backend to Theano")        
set_keras_backend("theano")  
from keras import backend; print(backend._BACKEND)

输出为iPython

tensorflow
Change Keras Backend to Theano
theano