Keras:切换到新的环境设置后端到theano

时间:2017-12-19 21:07:23

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

我目前使用tensorflow作为后端使用keras进行工作。我最近创建了一个conda环境来使用python 3.5.3和tensorflow-gpu 1.4.0来试验keras 2.0.9的multi-gpu工具。在新的环境中,keras一直使用Theano作为后端。

我检查了~/.keras/keras.json,后端设置为tensorflow。但是当我source activate到这个新环境时,我发现KERAS_BACKEND环境变量设置为theano。将其设置回tensorflow有效。但是,我不明白这个自动设置到theano。我创建了更多的环境,默认情况下都使用张量流,因为我从来没有安装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

1 个答案:

答案 0 :(得分:0)

正如您所提到的,您正在使用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