关于python:如何更改Keras后端(哪里是json文件)?

How to change Keras backend (where's the json file)?

我已经安装了Keras,并希望将后端切换到Theano。 我查看了这篇文章,但仍然不知道在哪里放置创建的json文件。 另外,下面是我在Python Shell中运行import keras时遇到的错误:

Using TensorFlow backend.

Traceback (most recent call last): File"", line 1, in

import keras File"C:\Python27\lib\site-packages\keras__init__.py", line 2, in
from . import backend File"C:\Python27\lib\site-packages\keras\backend__init__.py", line 64, in

from .tensorflow_backend import * File"C:\Python27\lib\site-packages\keras\backend\tensorflow_backend.py",
line 1, in
import tensorflow as tf ImportError: No module named tensorflow

从Windows命令行运行python -c"import keras; print(keras.__version__)"时,我得到:

Using TensorFlow backend. Traceback (most recent call last): File
"", line 1, in File
"C:\Python27\lib\site-packages\keras__init__.py", line 2, in
from . import backend File"C:\Python27\lib\site-packages\keras\backend__init__.py", line 64, in

from .tensorflow_backend import * File"C:\Python27\lib\site-packages\keras\backend\tensorflow_backend.py",
line 1, in
import tensorflow as tf ImportError: No module named tensorflow

有人可以帮忙吗? 谢谢!


看完keras来源(这个地方):

启动你的python-binary并执行以下操作

1
2
3
import os
print(os.path.expanduser('~'))
# >>> C:\\Users\\Sascha'  # will look different for different OS
  • 这应该是基目录
  • Keras将在.keras所在的位置构建一个文件夹.keras(如果已经创建的话)。如果它不存在,那就在那里创建它
  • 示例:C:\\Users\\Sascha\\.keras\\keras.json'


在Ubuntu的情况下,以下为我工作:

'.keras'文件夹存在于您的主目录中,但是已隐藏。因此,您需要取消隐藏主目录中的隐藏文件。
您可以在Ubuntu中看到隐藏文件

  • 查看 - >显示隐藏文件或
  • 按ctrl + H.

您现在可以在主目录中看到'.keras'文件夹。在该文件夹中,您将看到'keras.json'文件,根据官方文档https:// keras,您可以修改该文件以将keras后端切换到theano .IO /后端/


"找不到你的keras.json文件?:Windows
在大多数系统上,在打开Python shell并直接导入keras包本身之前,不会创建keras.json文件(和相关的子目录)。

如果您发现系统上不存在?/ .keras / keras.json文件,只需打开一个shell,(可选)访问您的Python虚拟环境(如果您使用的是虚拟环境),然后导入Keras:

1
2
3
4
$ workon keras_tf
$ python
>>> import keras
>>> quit()

"

参考自:keras-with-tensorflow / theano-backend


对于那些打开python shell的人:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import os

with open(os.path.expanduser('~')+'\\.keras\\keras.json','w') as f:
    new_settings ="""{


   "epsilon": 1e-07,


   "image_data_format":"channels_last",

   "backend":"theano",


   "floatx":"float32"


    }"""

    f.write(new_settings)

import keras

如果您想更改配置,可在此处使用json:~/.keras/keras.json

要在python 2.7中动态执行此操作,您可以运行:

1
2
3
4
5
6
7
8
9
10
11
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")

最简单的解决方案

谷歌的TensorFlow是keras的默认后端,但是例如,如果你想用theano更改它
首先通过在python shell中导入来检查您希望使用的备用后端是否已成功安装:

import theano as th

如果它工作正常

第2步:如果你已经安装了keras,virtualenv中的theano然后转到virtualenv目录

例如virtualenv / virtual / lib / python2.7 / site-packages / keras / backend /

打开init.py
改变第27行

1
2
Default backend: TensorFlow.
_BACKEND = 'theano'

就是这样

打开python shell
并导入keras

import keras as kd


你可以直接用,

1
2
import os
os.environ['KERAS_BACKEND']='theano'

要么

1
os.environ['KERAS_BACKEND']='tensorflow'

对于Linux系统,隐藏的.keras目录将在用户的主目录中创建。要观察是否已创建,请从主目录运行以下命令(-a允许您查看隐藏的文件和目录)。

1
    ls –a

如果目录在那里,则cd进入它并修改keras.json文件。如果不存在,则使用创建目录

1
    mkdir .keras

然后用。创建文件

1
    touch keras.json

然后编辑该文件以使您引用的配置更改将后端引擎更改为Theano。

此视频中完整介绍了此过程。


只是添加这篇内容丰富的帖子。我正在使用anaconda来完成我的任务。并通过我的anaconda python导入keras。所以keras安装进去了

1
C:\Users\username\AppData\Local\Continuum\Anaconda3\Lib\site-packages

站点包中有2个文件夹:kerasKeras-1.0.8.dist-info

Keras-1.0.8.dist-info中,有一个名为metadata.json的文件。默认情况下,"Theano"作为后端。因此,如果将其更改为tensorflow,您将获得数十个后端。

希望它能帮助那些可能有类型问题的人。


在ubuntu中,您可以使用此命令在vi编辑器中打开keras.json文件并进行编辑和保存

1
sudo vi $HOME/.keras/keras.json

或使用以下内容在gedit中打开

1
sudo gedit $HOME/.keras/keras.json

键入以下内容并在命令提示符下按Enter键:

1
%USERPROFILE%/.keras/keras.json

更改打开的文本文件中的后端并保存。


官方Keras文档可能会帮助您。此链接显示如何更改Keras的后端。你必须将'/ .keras / keras.json从'后端':'tensorflow'改为'backend':'theano'。