Python 为什么我的CUDA突然为Pytorch而不是Tensorflow工作?

Python 为什么我的CUDA突然为Pytorch而不是Tensorflow工作?,python,tensorflow,cuda,Python,Tensorflow,Cuda,我使用的机器是Titan XP,运行Ubuntu 18.10。我不是所有者,所以我不确定以前是如何配置的。cuda版本是9.*,很可能是9.0。没有类似于/usr/local/cuda的文件夹。虽然听起来很奇怪(因为没有Cuda与18.10兼容),但之前它在Tensorflow和Pytorch上都运行得很好。现在,在python 2.7、cudatoolkit 9.2和cudnn 7.2.1中运行tensorflow gpu v1.12.0时(之前运行良好,没有任何更改),它报告: Import

我使用的机器是Titan XP,运行Ubuntu 18.10。我不是所有者,所以我不确定以前是如何配置的。cuda版本是9.*,很可能是9.0。没有类似于
/usr/local/cuda
的文件夹。虽然听起来很奇怪(因为没有Cuda与18.10兼容),但之前它在Tensorflow和Pytorch上都运行得很好。现在,在python 2.7、cudatoolkit 9.2和cudnn 7.2.1中运行tensorflow gpu v1.12.0时(之前运行良好,没有任何更改),它报告:

ImportError: libcublas.so.9.0: cannot open shared object file: No such file of directory
但是,当我使用pytorch 0.4.1、cudatoolkit 9.0和cudnn7.6将conda env更改为python 3.6时(它们在pycharm中显示)。有:

torch.cuda.is_available() # True
这表明GPU正在Pytorch代码中运行。我还通过nvidia smi检查了GPU RAM,当Pytorch运行时,RAM被占用

虽然没有像
/usr/local/Cuda/
这样的Cuda文件夹,但当我运行时:

nvcc - V
有:

torch.cuda.is_available() # True
Cuda compilation tools, release 9.1, V9.1.85

有人能告诉我这些奇怪的事情是怎么发生的吗?我该怎么做才能让tensorflow gpu正常工作?我完全搞不懂orz。

当你用conda安装pytorch和tensorflow gpu时,Anaconda环境会安装他们自己版本的CUDA工具包。看起来您的Python3.6环境就是这样设置的。您的Python 2.7版本是系统安装还是其他Python环境的一部分?您的Tensorflow可能是根据一个不再安装的CUDA工具包构建的,无论出于何种原因,或者在任何情况下,您试图使用Tensorflow,但在您的LD_LIBRARY_路径中没有构建它所依据的库的路径(可能是因为一个不寻常的安装位置)

您可以键入
哪个nvcc
,查看路径的哪个部分当前指向该可执行文件。这将告诉您CUDA工具包的安装位置。我猜您上次运行nvcc时,您的
路径仍然指向conda环境,或者在任何情况下都指向位于不寻常安装位置的某个CUDA toolkit版本

首先,我建议放弃任何将系统python与Tensorflow结合使用的努力。我的建议是修改或创建一个新的conda环境,并使用conda安装tensorflow gpu,后者还将为该环境安装CUDA工具包。请注意,CUDA安装将不在
/usr/local/CUDA
中。如果您沿着此路径,它将位于您的conda环境中