如何更改 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 个文件夹:keras
和 Keras-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 文件在哪里)?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 tensorflow 在 keras 中禁用 GPU?
如何让 Keras 在 Anaconda 中使用 Tensorflow 后端?