Keras导入错误:TensorFlow后端

3
    ---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
/Users/CJL/anaconda3/lib/python3.5/site-packages/keras/backend/tensorflow_backend.py in <module>()
      4 try:
----> 5     from tensorflow.python.ops import ctc_ops as ctc
      6 except ImportError:

ImportError: cannot import name 'ctc_ops'

During handling of the above exception, another exception occurred:

ImportError                               Traceback (most recent call last)
<ipython-input-10-c74e2bd4ca71> in <module>()
----> 1 import keras

/Users/CJL/anaconda3/lib/python3.5/site-packages/keras/__init__.py in <module>()
      1 from __future__ import absolute_import
----> 2 from . import backend
      3 from . import datasets
      4 from . import engine
      5 from . import layers

/Users/CJL/anaconda3/lib/python3.5/site-packages/keras/backend/__init__.py in <module>()
     67 elif _BACKEND == 'tensorflow':
     68     sys.stderr.write('Using TensorFlow backend.\n')
---> 69     from .tensorflow_backend import *
     70 else:
     71     raise Exception('Unknown backend: ' + str(_BACKEND))

/Users/CJL/anaconda3/lib/python3.5/site-packages/keras/backend/tensorflow_backend.py in <module>()
      5     from tensorflow.python.ops import ctc_ops as ctc
      6 except ImportError:
----> 7     import tensorflow.contrib.ctc as ctc
      8 
      9 import numpy as np

ImportError: No module named 'tensorflow.contrib.ctc'

根据这篇文章,似乎是Keras存在问题而不是Tensorflow。

我想知道这个问题是否已经解决?


哦,实际上那是 Keras 的一个问题。你不应该这样做。你应该使用 tf.nn.*。让我在 Github 上对此发表评论。 - drpng
2个回答

5
这是Keras和tensorflow之间的问题。你应该更改此修复程序,使用类似以下的东西。
if hasattr(tf.contrib, 'ctc'):
  ctc = tf.contrib.ctc  # old version
else:
  ctc = tf.nn  # New official version.

目前访问ctc操作的“官方”方式是在tf.nn中进行,例如tf.nn.ctc_loss


这个文件在tensorflow库中是哪一个?谢谢。 - Char
这是 keras/backend/tensorflow_backend.py。不要尝试导入。如果您正在使用最新版本的tensorflow,则 ctc = tf.nn 应该足够。 - drpng
我在修改代码后仍然遇到了这个错误:“AttributeError: module 'tensorflow.contrib' has no attribute 'ctc'”。 - Char
非常感谢!这解决了问题,让我能够顺利导入。 - Char

-3

如果Keras出现导入问题,并且即使您已经安装了它,仍然面临“没有名为keras的模块”的情况。

  1. 只需通过以下方式升级pip:
python -m pip install –upgrade pip
  1. 通过以下方式重新安装升级后的Keras和TensorFlow:
pip install keras
pip install tensorflow

希望它能解决问题。如果不能,请尝试升级您的conda(Anaconda),然后再次执行上述步骤1到3。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接