如何更改 Keras 后端(json 文件在哪里)?

Posted

技术标签:

【中文标题】如何更改 Keras 后端(json 文件在哪里)?【英文标题】:How to change Keras backend (where's the json file)? 【发布时间】:2017-03-11 15:19:46 【问题描述】:

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

使用 TensorFlow 后端。

Traceback(最近一次调用最后一次):文件“”,第 1 行,in 导入 keras 文件“C:\Python27\lib\site-packages\keras__init__.py”,第 2 行,在 从 。导入后端文件“C:\Python27\lib\site-packages\keras\backend__init__.py”,第 64 行,在 从 .tensorflow_backend 导入 * 文件“C:\Python27\lib\site-packages\keras\backend\tensorflow_backend.py”, 第 1 行,在 import tensorflow as tf ImportError: No module named tensorflow

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

使用 TensorFlow 后端。 Traceback(最近一次通话最后一次):文件 "",第 1 行,在文件中 “C:\Python27\lib\site-packages\keras__init__.py”,第 2 行,在 从 。导入后端文件“C:\Python27\lib\site-packages\keras\backend__init__.py”,第 64 行,在 从 .tensorflow_backend 导入 * 文件“C:\Python27\lib\site-packages\keras\backend\tensorflow_backend.py”, 第 1 行,在 import tensorflow as tf ImportError: No module named tensorflow

有人可以帮忙吗?谢谢!

【问题讨论】:

我用的是mac,能否告诉我如何将keras的后端从tensorflow改成theano 在Windows中查找keras.json,快捷方式是%USERPROFILE%/.keras,参考:datascience.stackexchange.com/a/15615/83048 【参考方案1】:

查看 keras 源码后 (this place):

启动您的 python 二进制文件并执行以下操作

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

【讨论】:

@GeorgeLiu 如果回答了您的问题,请继续接受答案。 快捷方式是 %USERPROFILE%/.keras by datascience.stackexchange.com/a/15615/83048【参考方案2】:

如果是 Ubuntu,以下对我有用:

“.keras”文件夹存在于您的主目录中,但已隐藏。因此,您需要取消隐藏主目录中的隐藏文件。 您可以通过

查看 Ubuntu 中的隐藏文件 查看->显示隐藏文件或 按 ctrl+H。

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

【讨论】:

OP 使用的是 windows,因此默认情况下不隐藏点文件和文件夹。此外,ctrl+H 或 view->show hidden files 是 ubuntu 特定的命令 解决了我的问题,即使 OP 要求使用 Windows。我认为以你知道的方式回答这样的问题并没有那么糟糕。所以无论如何它都可以帮助人们。【参考方案3】:

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

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

$ workon keras_tf
$ python
>>> import keras
>>> quit()

"

引用自:keras-with-tensorflow/theano-backend

【讨论】:

【参考方案4】:

对于那些打开了 python shell 的人:

import os

with open(os.path.expanduser('~')+'\\.keras\\keras.json','w') as f:
    new_settings = """\r\n
    "epsilon": 1e-07,\r\n
    "image_data_format": "channels_last",\n
    "backend": "theano",\r\n
    "floatx": "float32"\r\n
    """
    f.write(new_settings)

import keras

【讨论】:

【参考方案5】:

可以直接使用,

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

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

【讨论】:

【参考方案6】:

如果您想更改配置,可以在此处获取 json:~/.keras/keras.json

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

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")

【讨论】:

【参考方案7】:

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

    ls –a 

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

创建目录
    mkdir .keras

然后用

创建文件
    touch keras.json 

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

this video 全面介绍了此过程。

【讨论】:

不要只使用 ls -a 使用 ls -a | grep keras 检查 .keras 目录是否存在。这会更容易。【参考方案8】:

Keras 官方文档可能会对您有所帮助。这个link 展示了如何更改 Keras 的后端。您必须将 ~/.keras/keras.json 从 'backend': 'tensorflow' 更改为 'backend': 'theano'。

【讨论】:

【参考方案9】:

只是为了添加这个信息丰富的帖子。我正在使用 anaconda 来完成我的任务。并通过我的 anaconda python 导入了 keras。所以 keras 安装在

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,您将获得 tensorflow 后端。

希望它能帮助可能遇到问题的人。

【讨论】:

【参考方案10】:

最简单的解决方案:

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

将 theano 导入为 th

如果效果好的话

第二步:如果你已经在virtualenv中安装了keras,theano然后进入virtualenv目录

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

打开 init.py 更改第 27 行

Default backend: TensorFlow.
_BACKEND = 'theano'

就是这样

打开python shell 并导入 keras

将 keras 导入为 kd

【讨论】:

【参考方案11】:

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

%USERPROFILE%/.keras/keras.json

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

【讨论】:

【参考方案12】:

在 ubuntu 中你可以使用这个命令在 vi 编辑器中打开 keras.json 文件并编辑和保存

sudo vi $HOME/.keras/keras.json

或使用以下在 gedit 中打开

sudo gedit $HOME/.keras/keras.json

【讨论】:

以上是关于如何更改 Keras 后端(json 文件在哪里)?的主要内容,如果未能解决你的问题,请参考以下文章

keras 后端 theano/tensorflow

如何使用 tensorflow 在 keras 中禁用 GPU?

如何让 Keras 在 Anaconda 中使用 Tensorflow 后端?

如何强制 keras 使用 tensorflow GPU 后端

如何有效地使用 Keras 与后端无关

如何确保 Keras 使用 GPU 和 tensorflow 后端?