Press "Enter" to skip to content

解决Tensorflow不能用GPU加速问题

解决Tensorflow不能用GPU加速问题

用tensorflow_gpu运行代码出错

用tensorflow_gpu运行代码出错

 

tensorflow_gpu版本是2.3.1

 

通过nvidia-smi发现确实是安装了cuda的。

 

下面就一步一步找问题

 

第一个错误:

 

tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library ‘libcudart.so.10.1’; dlerror: libcudart.so.10.1: cannot open shared object file: No such file or directory

 

解决方法:

 

conda install cudatoolkit=10.1

 

然后就会出现:

 

I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1

 

证明这个问题ok了

 

第二个错误:

 

Could not load dynamic library ‘libcudnn.so.7’; dlerror: libcudnn.so.7: cannot open shared object file: No such file or directory;

 

解决方法:

 

conda install -c anaconda cudnn

 

然后就没有这个错误了

 

就在我以为一起都OK的时候,突然发现,又又又报错了

 

居然lstm和GRU不能用

 

第三个错误:

 

WARNING:tensorflow:Layer lstm will not use cuDNN kernel since it doesn’t meet the cuDNN kernel criteria. It will use generic GPU kernel as fallback when running on GPU

 

后来也是在CSDN上搜到的解决方法,原来是cudnn对lstm和gru的参数是有要求的。具体如下

 

而对于GRU是这样的:

 

注意gru额外还要加一条命令:

 

reset_after = TRUE,

 

这里其他网友说的是:尽管官网上说要满足 recurrent_activation = ‘sigmoid’, activation == tanh , recurrent_dropout == 0,但其实只有第一条就可以了。 但是我这边确不行。必须要这几条都写上才可以用!!

 

后面的lstm、gru参考了这篇文章:

 

[1] https://blog.csdn.net/weixin_45865390/article/details/109305744

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注