他们在我电脑跑程序,一会儿他把cudnn换成5.0的,一会儿又被另一个换成3.0的,然而最近别人在我电脑编译的tensorflow是基于cudnn是5.1的,然而我现在的版本是5.0的,出现错误。没办法只能求救师兄,通过观察其操作,貌似知道了如何直接换。
sudo tar -zxvf cudnn-7.5-linux-x64-v5.1.tgz
cd cuda
sudo cp include/cudnn.h /usr/local/cuda/include/
sudo cp lib64/* /usr/local/cuda/lib64/
上面没什么好说的,就是把相应的文件cudnn.h文件和lib64文件夹下的链接库文件考入相应的位置呗。
注意:解压出来的lib64下面有3个so文件。分别是 libcudnn.so 和 libcudnn.so.5以及 libcudnn.so.5.1.3文件。 并且这3个点so文件大小都一样。其实都是软连接!libcudnn.so链接到libcudnn.so.5,而libcudnn.so.5.又链接到libcudnn.so.5.1.3。 因此我们要将/usr/local/lib64下的以前的这样的链接替换掉。
cd /usr/local/cuda/lib64
ll
出现:
-rw-r--r-- 1 root root 720192 8月 16 2015 libcudart_static.a
lrwxrwxrwx 1 root root 15 10月 3 22:39 libcudnn.so -> libcudnn.so.5.0*
lrwxrwxrwx 1 root root 17 10月 4 18:34 libcudnn.so.5 -> libcudnn.so.5.0.
我们需要把以前的这3个文件删除。libcudnn.so和libcudnn.so.5以及libcudnn.so.5.0
sudo rm libcudnn.so.5 libcudnn.so.5.0*
sudo rm libcudnn.so
然后自己创建类似的链接。由于5.1已经被链接到了5.1.3上了。所以我们要删掉以前的.so文件,然后创建新的.so文件,并且链接到5.1上。
sudo ln -s libcudnn.so.5.1 libcudnn.so
ll
最后出现
lrwxrwxrwx 1 root root 15 10月 6 22:40 libcudnn.so -> libcudnn.so.5.1*
lrwxrwxrwx 1 root root 17 10月 6 22:40 libcudnn.so.5.1 -> libcudnn.so.5.1.3*
-rwxr-xr-x 1 root root 60696704 10月 6 22:37 libcudnn.so.5.1.3*
-rwxrwxrwx 1 root root 59715990 10月 6 22:37 libcudnn_static.a*