Can';由于CUDA问题,无法使tensorflow gpu在R中工作

Can';由于CUDA问题,无法使tensorflow gpu在R中工作,r,tensorflow,keras,R,Tensorflow,Keras,我正在尝试开始使用Keras,我有一个新型的Nvidia GPU,但我似乎无法启动它,尽管我使用的是新安装的Ubuntu(20.04) 在我的第一次尝试中,我注意到Ubuntu检测到了我的图形卡,所以我通过进入“附加驱动程序”安装了它。然后我使用以下命令安装了Keras和Tensorflow,没有产生任何错误 install.packages("keras") library(keras) install_keras(tensorflow = "gpu"

我正在尝试开始使用Keras,我有一个新型的Nvidia GPU,但我似乎无法启动它,尽管我使用的是新安装的Ubuntu(20.04)

在我的第一次尝试中,我注意到Ubuntu检测到了我的图形卡,所以我通过进入“附加驱动程序”安装了它。然后我使用以下命令安装了Keras和Tensorflow,没有产生任何错误

install.packages("keras")
library(keras)

install_keras(tensorflow = "gpu")
然而,当我试图建立一个Keras模型时

model <- keras_model_sequential() %>%
  layer_dense(units = 16, activation = "relu", input_shape = c(10000)) %>%
  layer_dense(units = 16, activation = "relu") %>%
  layer_dense(units = 1, activation = "sigmoid")
您可能会注意到,此错误消息提到了
cuda-11.2
,但是,当我使用系统默认的
cuda-10.1
时,我收到了一条几乎相同的错误消息,我想这是驱动程序附带的

我做了很多事情,包括使用Nvidia的文档直接从Nvidia的网站下载并尝试安装cuDNN,以及将cuda添加到
PATH
LD_LIBRARY_PATH
,但都没有成功

最后,我删除了我的
r-networkite
conda环境,这样我就可以从头开始重新安装Tensorflow,但要针对cuda 11.2而不是默认的10.1

我遵循了上面的说明,但我用11.2替换了10.1的每个实例,用libcudnn.so.8替换了libcudnn.so.7,因为这是可用的最新版本,也是我下载到系统中的版本,这让我看到了上面的错误消息,与我使用10.1时得到的错误消息几乎相同,这是我电脑的默认设置

另外,当我再次尝试在R中使用Tensorflow时,我注意到了一些奇怪的事情。我使用
install\u keras(tensorflow=“gpu”)
安装了它,没有明显的问题,但是当我调用以下命令时:

imdb <- dataset_imdb(num_words = 10000)
但它不能在其他地方使用其他文件

2021-01-14 09:04:53.227139: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcusolver.so.10'; dlerror: libcusolver.so.10: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /home/arta/.local/share/r-miniconda/envs/r-reticulate/lib:/usr/lib/R/lib:/usr/local/cuda-11.2/lib64:::/lib:/usr/lib/x86_64-linux-gnu:/usr/lib/jvm/default-java/lib/server:/usr/local/cuda-11.2/lib64

我现在该怎么办?为什么我不能让gpu加速工作?我的计划是按照那篇博文中的说明,从Ubuntu中清除所有Nvidia软件,然后再次尝试使用10.1,因为这似乎是最稳定的版本。

多亏了@RobertCrovella,我卸载了CUDA、cuDNN等。因为版本不匹配,我用cuDNN 8.0重新安装了CUDA 11.0版

> tensorflow::tf_gpu_configured()
...
tensorflow/core/common_runtime/gpu/gpu_device.cc:1406] Created TensorFlow device (/device:GPU:0 with 8779 MB memory) -> physical GPU (device: 0, name: GeForce RTX 3080, pci bus id: 0000:09:00.0, compute capability: 8.6)
GPU device name:  /device:GPU:0[1] TRUE

我是否正确理解,如果我将cuda 11.0和cuDNN 8.0安装到cuda 11.0,那么所有这些错误都会消失

我已经安装了cuda 11.2,并找到了cuDNN 8到cuda 11.1。我用python3(3.8 Ubuntu20.04.1 LTS默认值)pip3和tensorflow等安装了它们。在python中rip似乎可以工作,但在R中它坏了。
我已经创建了到现有版本的符号链接,并且一个R代码到达了应该使用gpu的位置,但是由于核心转储而被中止。

您的TF希望使用CUDA 11.0。你有CUDA 11.2。您不能将CUDA 11.2用作CUDA 11的替代品。0@RobertCrovella如果我要清除所有与Nvidia CUDA相关的软件和图形卡驱动程序并重新启动,为了与libcudnn和Tensorflow的最佳兼容性,您建议我使用哪个版本的CUDA?最好将其作为评论发布,而不是回答。
2021-01-14 09:00:06.766462: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.11.0
2021-01-14 09:04:53.227139: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcusolver.so.10'; dlerror: libcusolver.so.10: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /home/arta/.local/share/r-miniconda/envs/r-reticulate/lib:/usr/lib/R/lib:/usr/local/cuda-11.2/lib64:::/lib:/usr/lib/x86_64-linux-gnu:/usr/lib/jvm/default-java/lib/server:/usr/local/cuda-11.2/lib64
> tensorflow::tf_gpu_configured()
...
tensorflow/core/common_runtime/gpu/gpu_device.cc:1406] Created TensorFlow device (/device:GPU:0 with 8779 MB memory) -> physical GPU (device: 0, name: GeForce RTX 3080, pci bus id: 0000:09:00.0, compute capability: 8.6)
GPU device name:  /device:GPU:0[1] TRUE