我目前使用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?
修改
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
答案 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。