用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 2021-11-28 20:16:36.866427: I 解决方法:
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
|