【问题标题】:Keras: switching to new environment set backend to theanoKeras:切换到新环境将后端设置为 theano
【发布时间】:2017-12-19 21:07:22
【问题描述】:

我目前使用 tensorflow 作为后端来处理 keras。我最近使用 python 3.5.3 和 tensorflow-gpu 1.4.0 创建了一个 conda 环境来试验 keras 2.0.9 的多 GPU 设施。在那个新环境中,keras 始终使用 Theano 作为后端。

我检查了~/.keras/keras.json,后端设置为tensorflow。但是,当我 source activate 进入这个新环境时,我看到 KERAS_BACKEND 环境变量设置为 theano。将其设置回tensorflow 有效。但是,我不明白th​​eano的这种自动设置。我已经创建了更多的环境,并且默认都使用 tensorflow,因为我从来没有安装过 theano,也没有安装在这个新创建的环境中。 2.0.9 有什么变化吗?我在 anaconda 目录中找不到任何 keras.json

有谁知道在向新环境采购时如何防止变量 KERAS_BACKEND 到 theano?

编辑

@Yu Yang 指出有类似问题的用户。答案是重新安装或更改文件activate.sh。我做了最后一个(见下文)但仍然 theao 返回为KERAS_BACKEND

$ cat bin/anaconda3/pkgs/keras-2.0.9-py35_0/info/recipe/activate.sh
#!/bin/bash
if [ "$(uname)" == "Darwin" ]
then
    # for Mac OSX
    export KERAS_BACKEND=tensorflow
elif [ "$(uname)" == "Linux" ]
then
    # for Linux
    # export KERAS_BACKEND=theano
    export KERAS_BACKEND=tensorflow
fi

【问题讨论】:

  • 虽然在不同的 Keras 版本下,您的问题看起来与this one 非常相似。 conda keras包有问题,好像还没解决。
  • 谢谢。我尝试了更改 activate.sh 的建议(请参阅编辑)。那没有用。我会看看是否可以选择重新安装。

标签: python-3.x tensorflow keras anaconda theano


【解决方案1】:

正如您提到的,您正在使用 conda 环境。我遇到了同样的问题,不得不在我的 anaconda tensorflow 环境中更新 activate.sh 文件。但是在你的编辑中,你是在anaconda包路径中编辑这个文件,但是你应该在你的conda环境路径中修改.sh文件(因为在你做activate的时候会用到这个):

<path_to_conda>/envs/<env_name>/etc/conda/activate.d/keras_activate.sh

所以在我的情况下是这样的:

$HOME/.conda/envs/tf_env/etc/conda/activate.d/keras_activate.sh

在 keras github 的讨论中查看此 comment

【讨论】:

  • 感谢您的链接。我在.bashrc 中的export KERAS_BACKEND=tensorflow 有点“解决”了我的问题。你的建议似乎更好。下周我会在我的 DL 机器后面尝试一下。
猜你喜欢
  • 2017-06-29
  • 2017-06-27
  • 2018-04-26
  • 2017-07-28
  • 1970-01-01
  • 1970-01-01
  • 2017-10-29
  • 2017-12-12
  • 1970-01-01
相关资源
最近更新 更多