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

新手上路,请多包涵

我在我的 Anaconda 环境中安装了 tensorflow-gpu。他们都工作得很好。

现在我正在尝试安装带有 Tensorflow 后端的 Keras。根据我刚刚运行的 说明

 pip install keras

但是它没有安装keras,然后我尝试了:

 conda install -c conda-forge keras=2.0.2

然后我现在可以在 python 中导入 keras。但问题是,它总是使用 Theano 后端。我正在尝试改变这一点,但不知道该怎么做。

我也尝试编辑文件 ~/.keras ,但实际上默认后端已经是 tensorflow 了。

请帮助..非常感谢!

原文由 Tai Christian 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 446
2 个回答

发生这种情况是因为 keras conda-forge 包在 ${CONDA_PREFIX}/etc/conda/activate.d/keras_activate.sh 中放置了一个文件,它设置了环境变量 KERAS_BACKEND

 (root) [root@starlabs ~]# cat $CONDA_PREFIX/etc/conda/activate.d/keras_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
fi

从文件中可以看出,在 Linux 中,它将值设置为 ‘theano’ 并且根据官方文档:

环境变量 KERAS_BACKEND 将覆盖配置文件中定义的内容

要解决此问题,您可以编辑此文件并将“theano”更改为“tensorflow”(这可能会在重新安装或更改环境时被覆盖),或者执行以下操作:

 export KERAS_BACKEND=tensorflow
python /path/to/python/program.py

原文由 Nehal J Wani 发布,翻译遵循 CC BY-SA 3.0 许可协议

从 conda-forge 安装 keras 后遇到同样的问题。 keras.json 已经有了张量流:

 {
    "floatx": "float32",
    "epsilon": 1e-07,
    "backend": "tensorflow",
    "image_data_format": "channels_last"
}

但是 activate tensorflow_keras (其中“ tensorflow_keras ”是环境名称),将后端更改为theano:

 C:\Users\User1>activate tensorflow_keras

(tensorflow_keras) C:\Program Files\Anaconda3\envs\tensorflow_keras\etc\conda\ac
tivate.d>set "KERAS_BACKEND=theano"

按照上面的@FvD,我编辑了这个文件:

 C:\Program Files\Anaconda3\envs\tensorflow_keras\etc\conda\activate.d

并将 theano 更改为 tensorflow:

 set "KERAS_BACKEND=tensorflow"

原文由 fairnc 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题