我按照Keras文档页面的指示更改了keras.json
文件。但在我的Ipython笔记本中,它仍然显示我正在使用Tensorflow作为后端。
也许这与Jupyter设置有关系?请帮忙看看。我甚至不知道如何找出问题出在哪里。谢谢!
我按照Keras文档页面的指示更改了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之前将其设置为某个值的一种方法。
# 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
-- 如果我们无法动态更改后端,不确定这如何有帮助。
-- 相反,以下内容对我有帮助: 如何在Keras中切换后端(从TensionFlow到Theano)
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)
tensorflow
Change Keras Backend to Theano
theano
import importlib; importlib.reload
代替reload
。 - shahar_m
keras.backend.backend()
时,它仍然显示为tensorflow
。也许我可以通过卸载tensorflow来解决这个问题? - user3768495