ImportError:没有名为“tensorflow.python”的模块与 tensorflow-gpu

Posted

技术标签:

【中文标题】ImportError:没有名为“tensorflow.python”的模块与 tensorflow-gpu【英文标题】:ImportError: No module named 'tensorflow.python' with tensorflow-gpu 【发布时间】:2018-09-01 02:45:08 【问题描述】:

我想为 keras/tensorflow 提供 gpu 支持,这就是我安装 tensorflow-gpu 的原因。 于是我通过pip安装了tensorflow-gpu:

pip install --upgrade tensorflow-gpu

这导致了:

from keras import backend as K
K.tensorflow_backend._get_available_gpus()
> []

然后我发现this *** answer 说我应该在安装 tensorflow-gpu 后卸载 tensorflow。这导致了:

Using TensorFlow backend.
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-3d00d838479b> in <module>()
----> 1 from keras import backend as K
      2 K.tensorflow_backend._get_available_gpus()

/raid/ntzioras/VirtualEnvironments/DeepLearning/lib/python3.4/site-packages/keras/__init__.py in <module>()
      1 from __future__ import absolute_import
      2 
----> 3 from . import utils
      4 from . import activations
      5 from . import applications

/raid/ntzioras/VirtualEnvironments/DeepLearning/lib/python3.4/site-packages/keras/utils/__init__.py in <module>()
      4 from . import data_utils
      5 from . import io_utils
----> 6 from . import conv_utils
      7 
      8 # Globally-importable utils.

/raid/ntzioras/VirtualEnvironments/DeepLearning/lib/python3.4/site-packages/keras/utils/conv_utils.py in <module>()
      7 from six.moves import range
      8 import numpy as np
----> 9 from .. import backend as K
     10 
     11 

/raid/ntzioras/VirtualEnvironments/DeepLearning/lib/python3.4/site-packages/keras/backend/__init__.py in <module>()
     82 elif _BACKEND == 'tensorflow':
     83     sys.stderr.write('Using TensorFlow backend.\n')
---> 84     from .tensorflow_backend import *
     85 else:
     86     raise ValueError('Unknown backend: ' + str(_BACKEND))

/raid/ntzioras/VirtualEnvironments/DeepLearning/lib/python3.4/site-packages/keras/backend/tensorflow_backend.py in <module>()
      4 
      5 import tensorflow as tf
----> 6 from tensorflow.python.training import moving_averages
      7 from tensorflow.python.ops import tensor_array_ops
      8 from tensorflow.python.ops import control_flow_ops

ImportError: No module named 'tensorflow.python'

使用

重新安装 tensorflow

pip install --upgrade tensorflow --no-cache

使用上面的代码再次导致 gpus 的空数组。

任何想法如何解决这个问题?

【问题讨论】:

你的gpu的计算能力是多少?我遇到了类似的问题,因为他们将 gpu 的默认计算范围从 3.0 更改为 3.5。我必须从源代码构建才能让我的工作。 其实我不知道。这是另一个人设置的 nvidia-dev 盒子。我明天必须问他以获取更多信息,但我首先想在这里问我是否遇到了常见错误:) 如果它是一个专用的盒子,我不会太担心它。它更有可能是旧笔记本电脑或类似设备的问题。您是否正确安装了 Keras? 您需要为 GPU 版本的 tensorflow 安装和设置 CUDA。这是在 Linux 上使用 GPU 设置 TF 的指南。该页面还包含 OSX 和 Windows 指南。 tensorflow.org/install/install_linux#gpu_support 您应该卸载 两个 版本(CPU 和 GPU),然后重新安装 GPU 版本 - 请参阅 answer here 【参考方案1】:

这个解决方案对我有用:

卸载 CPU 和 GPU 版本的 TensorFlow,然后仅安装 GPU 版本的 TensorFlow。

pip uninstall tensorflow
pip uninstall tensorflow-gpu

pip install tensorflow-gpu

【讨论】:

以上是关于ImportError:没有名为“tensorflow.python”的模块与 tensorflow-gpu的主要内容,如果未能解决你的问题,请参考以下文章

ImportError:没有名为枚举的模块

ImportError:没有名为“appdirs”的模块

ImportError:没有名为 websocket 的模块

ImportError:没有名为“backports”的模块

ImportError:没有名为 ghostscript 的模块

ImportError:运行火花时没有名为请求的模块