导入错误:使用tensorflow-gpu时找不到'tensorflow.python'模块

9

我希望为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()
> []

然后我发现了这个stackoverflow答案,它指出在安装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

使用以上代码重新安装后,GPU数组仍为空。

有什么好的办法可以解决这个问题吗?


你的GPU计算能力是多少?我遇到了类似的问题,因为他们将GPU的默认计算范围从3.0更改为3.5。我不得不从源代码构建才能让我的工作正常运行。 - Grant Williams
Keras运行正常,但无法检测到GPU。我通过以下方式安装了Keras: pip install keras; pip install tensorflow-gpu; pip uninstall tensorflow; pip install tensorflow; - greece57
“'nvcc' 目前未安装”。由于我没有 sudo 权限,我必须等到明天才能尝试此操作。这可解决问题吗?来自另一个答案的代码在 gpu 列表中也返回 []。 - greece57
1
您需要安装和设置CUDA以使用tensorflow的GPU版本。以下是在Linux上设置TF与GPU的指南。该页面还提供了OSX和Windows的指南。https://www.tensorflow.org/install/install_linux#gpu_support - Grant Williams
5
您应该卸载两个版本(CPU和GPU),然后重新安装GPU版本-请参见此处的答案 - desertnaut
显示剩余5条评论
1个回答

12

这个解决方案对我有效:

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

pip uninstall tensorflow
pip uninstall tensorflow-gpu

pip install tensorflow-gpu

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