【问题标题】:Configuring Keras to use Tensorflow instead of Theano配置 Keras 以使用 TensorFlow 而不是 Theano
【发布时间】:2017-10-04 19:04:31
【问题描述】:

我正在尝试在 Anaconda virtualenv 下配置 Keras 安装,所有这些都在 Ubuntu 17.04 下运行。我已经通过conda 安装了keras-gpu,并通过运行python -c 'import keras' 生成了一个引导~/.keras 目录;最后,我在该目录中更新了我的keras.json,将tensorflow 作为后端而不是theano

我还使用conda 上提供的常规非 GPU keras 尝试了这些步骤。

我遇到的问题是我的keras.json 中的backend 选项正在被读取(因为无效值会引发异常),但被一个由 Anaconda 本身获取exported 的环境变量所否决- - 根据grep,有几个实例:

export KERAS_BACKEND=tensorflow
export KERAS_BACKEND=theano

...分散在~/miniconda3/pkgs/keras-2.0.2-py36_1/中的许多文件。

我不愿手动编辑这些文件,因为它们是由包管理器自动放置的,但我也想避免在每个会话开始时明确指定 KERAS_BACKEND=tensorflow,我想避免解决方案涉及direnv等工具。

如何让condakeras默认使用tensorflow

【问题讨论】:

  • 有趣.... 对我来说效果很好的配置是使用 python 3.5 使用 conda 创建虚拟环境,并使用 pip 安装 tensorflow-gpu,使用 conda 安装 keras。这工作得很好,GPU 也工作得很好。 (是Ubuntu 16.04)---但是如果使用jupiter,请注意,即使您在环境中安装它,它仍有可能尝试从外部加载包,这很痛苦。
  • 您可以随时启动您的脚本,例如:env KERAS_BACKEND=tensorflow python my_keras_script.py。 Anaconda 和virtualenv 是两个不同的工具,你都用了吗?

标签: tensorflow keras conda


【解决方案1】:

问题可能出在keras package conda-forge 上的文件activate.sh。此文件中的 export 语句是不必要的,应在 IMO 中删除。没有理由限制 linux 用户使用 theano 作为 Keras 后端(或 Mac OSX 的 TensorFlow)。

#!/bin/bash
if [ "$(uname)" == "Darwin" ]
then
    # for Mac OSX
    export KERAS_BACKEND=tensorflow
elif [ "$(uname)" == "Linux" ]
then
    # for Linux
    export KERAS_BACKEND=theano
fi

您可以通过以下方式解决问题:

  1. 从 activate.sh 中删除这些环境设置。
  2. 删除当前安装的keraskeras-gpu,然后 使用conda install -c defaults keras 安装 keras: keras 的非 conda-forge 版本似乎没问题。我没有在我的机器上找到任何这些环境设置。
  3. pip install keras:删除当前安装的keraskeras-gpu,然后只安装python包。

【讨论】:

  • 使用pip install keras tensorflow-gpu 成功了。谢谢!
猜你喜欢
  • 2018-04-26
  • 2021-06-15
  • 1970-01-01
  • 1970-01-01
  • 2017-06-29
  • 2019-09-28
  • 1970-01-01
  • 2020-02-28
  • 2020-12-14
相关资源
最近更新 更多