【问题标题】:Keras + tensorflow gives the error "no attribute 'control_flow_ops'"Keras + tensorflow 给出错误“没有属性'control_flow_ops'”
【发布时间】:2017-02-24 02:09:25
【问题描述】:

我第一次尝试运行 keras。我安装了这些模块:

pip install keras --user
pip install tensorflow --user

然后尝试运行https://github.com/fchollet/keras/blob/master/examples/mnist_cnn.py

但是它给了我:

AttributeError: 'module' object has no attribute 'control_flow_ops'

这些是我正在使用的版本。

print tensorflow.__version__
0.11.0rc0
print keras.__version__
1.1.0

如何让 keras 与 tensorflow 一起运行?

【问题讨论】:

  • 改用 tensorflow 0.10
  • @vgoklani 0.10 似乎无法通过 pip 获得。我该如何安装它,
  • @vgoklani 谢谢,成功了。
  • 这实际上不是一个解决方案,只是一种变通方法。不幸的是,我在 tensorflow 0.11 上遇到了同样的问题 :(

标签: python ubuntu machine-learning tensorflow keras


【解决方案1】:

Keras 和 TF 之间存在问题,可能 tf.python.control_flow_ops 不存在或不再可见。 使用以下导入语句可以解决此问题

import tensorflow as tf
tf.python.control_flow_ops = tf

详情请查看: https://github.com/fchollet/keras/issues/3857

【讨论】:

  • 我也有同样的问题。当尝试您的解决方案时,我得到: AttributeError: module 'tensorflow' has no attribute 'python'
  • tf 在过去 1 或 2 年发生了很大变化。我认为这个解决方案不再相关。
【解决方案2】:

当我发现keras 正在使用Theano 后端时,我遇到了这个问题。要修复它,请执行以下操作之一:

  • ~/.keras/keras.json 中设置"backend": "tensorflow"
  • 将环境变量KERAS_BACKEND设置为tensorflow

有关详细信息,请参阅 Keras backend 文档。

【讨论】:

  • @Ilan 你是什么意思?如果您只是想使用 Theano 时遇到此错误,那可能意味着您没有安装它。当我得到这个错误时,这对我来说当然是正确的:我没有安装 Theano,因为我没有计划使用它!如果您想有时使用 Theano 而有时使用 TensorFlow,请使用我在回答中说的 KERAS_BACKEND 环境变量;请注意,不同进程中的环境变量可能不同。如果您想在一个程序中同时使用两者,您可能会很不走运。无论如何,您可能需要发布一个新问题。
【解决方案3】:

如果不使用 TensorFlow 1.0.0;在以后的版本中使用 tf.python_io

import tensorflow as tf 

tf.python_io.control_flow_ops = tf

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-09
    • 1970-01-01
    • 2020-02-27
    • 1970-01-01
    • 2018-12-13
    • 1970-01-01
    相关资源
    最近更新 更多