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 sys
和 print(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 后端是 tensorflow 还是 theano
如何让 Keras 在 Anaconda 中使用 Tensorflow 后端?