Linux卸载以及离线安装tensorflow-gpu 2.4.0、cuda11.0、cudnn 8.0

问题:cuda10.1不支持sm_80算力,所以需要重装一系列,使cuda是11.0。

环境:Centos 7 有Anaconda、python36

最好复制个环境再折腾,免得最后一团糟。

目录

一、卸载tensorflow-gpu 2.1.0

二、卸载cuda和cudnn

三、tensorflow-gpu 2.4.0 (python36)

四、cuda 11.0

五、cudnn 8.0(cudnn 8.0及以后和之前的安装略有不同)

六、遇到的问题


一、卸载tensorflow-gpu 2.1.0

pip uninstall tensorflow-gpu==2.1.0

二、卸载cuda和cudnn

1、在/usr/local/cuda-xx/bin里面找到cuda-uninstaller文件,复制路径,然后:

sudo /usr/local/cuda-xx/bin/cuda-uninstaller

全选,确认,卸载,这个时候也是卸载了cudnn。

sudo rm -rf /usr/local/cuda-x.x #清除残留文件夹

三、tensorflow-gpu 2.4.0 (python36)

下载地址:Links for tensorflow-gpu

教程安装:(由于缺少依赖,缺啥包补啥包,在pypi里面找缺少的包需要的版本whl文件,上传,然后一个个pip安装,安装了十个左右就可以成功安装tensorflow-gpu)

pip install xxxx.whl

四、cuda 11.0

下载地址:CUDA Toolkit 11.0 Update 1 Downloads | NVIDIA Developer

https://developer.download.nvidia.com/compute/cuda/11.0.1/local_installers/cuda_11.0.1_450.36.06_linux.run

1、安装(下载的是run文件)

#首先cd到放".run"文件的目录下
chmod +x cudaxxxxxx.run  #下载的CUDA 文件
sudo sh cuda_xxxxxxx.run
#进入安装
accept
#下一步不安装driver和simples
Install

2、环境变量

sudo vim ~/.bashrc
#i是insert插入,可以编辑内容
#在最后写上环境变量
export PATH=/usr/local/cuda-11.0/bin:$PATH
export CUDA_HOME=/usr/local/cuda-11.0/bin:$CUDA_HOME
export LD_LIBRARY_PATH=/usr/local/cuda-11.0/lib64:$LD_LIBRARY_PATH

#esc退出插入, :Wq! 保存退出

source ~/.bashrc #立即生效
nvcc -V  #测试是否安装成功,成功会有版本,11.0

五、cudnn 8.0(cudnn 8.0及以后和之前的安装略有不同)

下载地址:cuDNN Archive | NVIDIA Developer

安装:

1、下载的是压缩包,首先解压

#cp到压缩包的目录
tar -xvf xxxx.tgz
sudo cp cuda/include/cudnn*.h /usr/local/cuda-xx.x/include # #如果是8以前的版本,就是cudnn.h
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-xx.x/lib64   #复制到local/cuda-xx.x/lib64下面
sudo chmod a+r /usr/local/cuda-xx.xx/include/cudnn*.h   #如果是8以前的版本,就是cudnn.h
sudo chmod a+r /usr/local/cuda-xx.xx/lib64/libcudnn*

2、检查版本

# cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2  这是8之前的版本的查看方式
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2 #8以及之后的版本
#成功会显示#define CUDNN_MAJOR 8版本,不成功啥也没有或者报错

六、遇到的问题

1、最开始的时候安装的是tensorflow-gpu 2.1.0和cuda10.1,在运行代码的时候卡了好久,结果报错说什么sm80,还运行起来了,准确率巨低,上网查了之后才发现cuda10.1不支持sm_80算力,起码得安装个cuda11.0,所以就全部重装。

2、两次遇到错误(记不清了):could not load dynamic library libcudart.so.11.0 xxxxx 

一是cuda的环境变量没有配置;

二是cudnn.h在复制的时候,cudnn 8以及之后应该复制cudnn*.h,不要忘记 *,包括后面的chmod语句也是cudnn*.h

3、因为tensorflow的版本问题,代码也需要略微改动,一个是keras前面要加上tensorflow.,都变成tensorflow.keras.xxx,要不然就安装个keras2.4.3,也是在pypi下载whl文件,pip安装

还有一个错误:Debug | (‘Keyword argument not understood:‘, ‘input‘)

链接:Debug | (‘Keyword argument not understood:‘, ‘input‘)_买猫咪的小鱼干的博客-CSDN博客 (input改成inputs)

5.重新进入要设置这个才可以运行!!!!

source ~/.bashrc #立即生效

4.Failed to get convolution algorithm:nvidia-smi 看看是不是占满了,用这个杀进程

kill -9 (PID号码)

你可能感兴趣的:(tensorflow,python,linux)