keras 后端 theano/tensorflow

Posted

技术标签:

【中文标题】keras 后端 theano/tensorflow【英文标题】:keras backend theano/tensorflow 【发布时间】:2018-04-26 01:22:18 【问题描述】:

我在使用 keras 后端时遇到问题。我将 tensorflow 设置为后端。我检查了 ./keras/keras.json、activate.d 和 activate.sh 以将 tensorflow 作为后端。我还尝试将 envs 变量强制为 tensorflow。 第一次在 jupyter 上运行 keras,它工作正常。我也可以导入没有任何错误的 tensorflow。

但是,当我现在使用 jupyter notebook 时,后端是 theano。

我尝试在 ipython 上导入 keras,后端是 tensorflow。

我用 conda 安装 keras、tensorflow 和 theano。

python 版本:3.6

keras:2.0.6

张量流:1.3.0

西诺:0.9

操作系统:win10

我尝试了不同的方法将 jupyter notebook 的后端更改为 tensorflow,但它似乎不起作用。

【问题讨论】:

我在使用 jupyter 时遇到了一个可怕的错误。我在安装 anaconda 之前安装了它,无论我做什么,jupyter 总是指向原始 python 而从不指向 conda 环境。就我而言(虚拟机),我放弃并创建了一台新机器,仅通过 conda 在正确的环境中安装 jupyter。 @DanielMöller,我实际上用 conda 安装了 jupyter。正如你所提到的,我现在正在使用 ipython 并将尝试创建一个特定的环境。 从 jypiter 知道您正在使用哪个 python 的一种可能方法是运行 import sysprint(sys.executable)。这将告诉您 jupyter 是否运行正确的环境。 感谢您的帮助@DanielMöller!它指向 Anaconda3/python.exe,这是正确的。我更改了 Anaconda3/lib/site-packages/keras/backend 中的 init.py ,在导入后端函数第 80 行中,我将 from .theano_backend import * 替换为 from .tensorflow_backend import *。它似乎可以解决问题。 Nice hack :) -- Jupyter 应该在名为 envs\yourenvironment 的文件夹中的某个位置运行,这样它就可以在没有你的 hack 的情况下正常工作。 【参考方案1】:

通常,使用 conda,我们创建了(理论上)独立于其他环境的特定环境。

我建议你使用 conda 创建一个 tensorflow 环境。使用命令提示符:

conda create -n myTensorflowEnv python=3.5

然后你激活这个环境:

activate myTensorflowEnv

然后,您的环境名称应出现在命令提示符开头的括号之间。 (如果这不起作用,您可能需要设置一些变量:How to activate an Anaconda environment)

在这个环境中,您可以安装所需的一切:Tensorflow、keras 和其他依赖项。不过,这个过程将取决于你想要什么,cpu、gpu、编译等。

您也应该在此环境中安装 jupyter。 (也许——只有你有我在评论中提到的可怕错误——首先卸载其他 jupyter)。

如果一切顺利,如果你从这个环境运行jupyter,你将能够在这个环境中使用tensorflow。

【讨论】:

以上是关于keras 后端 theano/tensorflow的主要内容,如果未能解决你的问题,请参考以下文章

Keras 切换后端(Theano和TensorFlow)

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

如何检查 Keras 后端是 tensorflow 还是 theano

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

使用 theano 后端加载 keras 模型时出现断言错误

导入 keras 时出现 ValueError «您正在尝试使用旧的 GPU 后端»