【超全超详细】pytorch和TensorFlow(CPU和GPU版)以及CUDA与cuDNN安装教程

1. 前言

简单总结下我安装的环境及过程:
在这里插入图片描述


2. 安装pytorch教程

超详细的安装教程戳:PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】

3. 安装TensorFlow教程

具体我是参考 Win10下安装tensorflow详细过程 来安装的。

注意:教程中的清华镜像地址找不到了,教程后面也有提到这个问题。

测试安装成功与否的过程出现了如下的错误:
在这里插入图片描述
后来从windows环境下tensorflow安装过程详解得知测试代码有误。

通过pip list 可知,我安装的tensorflow版本是2.6.2,因此测试代码为:

import tensorflow as tf
tf.compat.v1.disable_eager_execution()
sess =tf.compat.v1.Session()
a = tf.constant(10)
b = tf.constant(12)
sess.run(a+b)
22

具体原因可参考2.0版本tensorflow中session和eager_execution的bug

3. 升级TensorFlow为GPU版本

使用CPU跑代码还是太慢啦,看到有人说“使用pip来安装,pip安装后自带gpu支持,不需要额外安装gpu版本”以及“1.15以上的新版本的tensorflow,安装不再区分gpu还是cpu”。但我的tensorflow版本正好是1.15,因此我也不知道是否符合上述条件,但无论如何我都要安装GPU版本的。
在这里插入图片描述

3.1 检查是否可以直接使用GPU运行代码

(1)在虚拟环境下输入:

import tensorflow as tf
tf.test.is_gpu_available()

结果为FALSE,如下图所示:
在这里插入图片描述
(2)在Python文件下运行:

import tensorflow as tf
tf.test.is_gpu_available()

结果如下图所示:
在这里插入图片描述

3.2 检查是否需要安装CUDA和cuDNN

随后查看经验贴知,尽管我的电脑上有CUDA的版本信息,但是若查不到其版本信息,说明还是要下载CUDA和cuDNN,有可能电脑上自带的CUDA只是driver。

win+R打开cmd,输入nvidia-smi,即可看到支持的cuda版本是11.6
在这里插入图片描述

3.3 安装CUDA和cuDNN – 一定要先确定好版本

在这一步一定要想好自己想要安装的TensorFlow-GPU是什么版本的,随后再选择安装对应的CUDA和cuDNN的版本,一定要版本对应好!!!

版本对应查询地址:https://tensorflow.google.cn/install/source_windows?hl=en

在这里插入图片描述

随后的安装,找好自己对应的版本,再按照我接下来的教程一步步跟着走即可。

3.3.1 安装CUDA

CUDA下载链接:https://developer.nvidia.com/cuda-toolkit-archive

接下来下载CUDA,这里选择的版本不能高于你的显卡驱动里面那个版本号,由于我的是11.6,且系统是win10,所以我这里选择的是11.5。
在这里插入图片描述
在这里插入图片描述
下载后,接下来安装CUDA
安装cuda时,第一次会让设置临时解压目录,第二次会让设置安装目录;
临时解压路径,建议默认即可,也可以自定义。安装结束后,临时解压文件夹会自动删除;
安装目录,建议默认即可;

注意:临时解压目录不要和cuda的安装路径设置一样,否则安装结束,会找不到安装目录!此处我将临时安装目录设置到非系统盘路径,但是注意要选择空文件夹,否则会报错。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在上图中,首次安装要全选,多次安装后只选第一个即可。
接下来的安装路径默认即可,否则后续会出现路径问题。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
打开控制面板即可发现安装了一大堆配置和驱动文件
在这里插入图片描述
查看环境变量
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
需要在系统环境变量中有上述四个变量,这是自动生成的。

验证CUDA是否安装成功:win+R键运行cmd,输入nvcc --V
在这里插入图片描述
此时,CUDA安装已经成功,但是在完成张量加速运算时还需要cuDNN的辅助,因此下面安装cuDNN。

3.3.2 安装cuDNN

cuDNN下载链接:https://developer.nvidia.com/rdp/cudnn-archive

cuDNN地址如下,不过要注意的是,我们需要注册一个账号,才可以进入到下载界面。我下载的CUDA是11.5,因此cuDNN可以下载8.3.3的。
在这里插入图片描述
在这里插入图片描述
下载下来的是个压缩包,解压缩即可,
在这里插入图片描述
打开CUDA所在的目录C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5
在这里插入图片描述
在这里插入图片描述
将cuDNN下载的文件夹下的文件复制到CUDA的同名称文件中。

复制时看到,CUDA 的安装目录中,有和 cuDNN 解压缩后的同名文件夹,这里注意,不需要担心,直接复制即可。cuDNN 解压缩后的同名文件夹中的配置文件会添加到 CUDA安装目录中的同名文件夹中。【此处还是建议还是分别把文件夹的内容复制到对应文件夹中去】

随后在系统变量中加入这四个地址:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5\lib
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5\include
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5\libnvvp

在这里插入图片描述
验证cuDNN是否安装成功:win+R键运行cmd,输入

cd C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5
cd .\extras\demo_suite
.\bandwidthTest.exe
.\deviceQuery

在这里插入图片描述
在这里插入图片描述
以上都安装好后,再测试一下,我电脑上安装的TensorFlow1.15版的可以直接使用GPU吗?
在这里插入图片描述
由上图可知,还是不行。

4. 安装TensorFlow的GPU版本

4.1 第一步:创建环境

环境名为tensorflow-gpu,python为3.6版本的

conda create -n tensorflow-gpu python=3.6

在这里插入图片描述

4.2 第二步:进入环境

进入环境的命令:conda activate tensorflow-gpu
退出环境命令为:conda deactivate

4.3 安装tensorflow-gpu==1.15.0

使用镜像(https://pypi.tuna.tsinghua.edu.cn/simple)安装更快

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu==1.15.0

4.4 检验是否安装成功-不成功-因为版本不对应

import tensorflow as tf
tf.test.is_gpu_available()

还是FALSE,我觉得是版本不对应,一开始我以为是向下兼容的,所以选了个较新的CUDA版本
在这里插入图片描述

版本对应查看链接:https://tensorflow.google.cn/install/source_windows?hl=en

在这里插入图片描述

4.5 再安装CUDA和cuDNN

由于我要安装TensorFlow-GPU的1.15版本,查看对应CUDA10版和cuDNN7.4版,因此我又安装了这两个。

查阅资料可知:
windows多个不同版本的CUDA使用时不需要切换,只要环境变量PATH中有相应的CUDA路径即可,无需手动切换了。
tensorflow在运行的时候会自动在环境变量中寻找合适的CUDA版本,直到找到为止,如果没有,则会报错。

在这里插入图片描述
配好之后,再验证即为True
在这里插入图片描述
此时C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA地址下有两个版本的CUDA。
在这里插入图片描述

5. Tensorflow GPU版的爬坑之旅

5.1 显卡内存限制问题

(1)报错

If you want to see a list of allocated tensors when OOM happens, add report_tensor_allocations_upon_oom to RunOptions for current allocation info.

(2)解决方法

上面的报错是由于GPU显存不够导致的,可以把batch_size、epoch减小或者使用CPU运行。
我并不想减少我的参数,于是我就从自己的笔记本转到课题组里的工作站上跑代码,然后就遇到了下面的问题。
在这里插入图片描述
还有其他教程写的解决方法如下:

config = tf.ConfigProto()  # tf.ConfigProto()主要的作用是配置tf.Session的运算方式,比如gpu运算或者cpu运算
config.gpu_options.per_process_gpu_memory_fraction = 0.5  # 程序最多只能占用指定gpu50%的显存
config.gpu_options.allow_growth = True  # 当使用GPU时候,Tensorflow运行自动慢慢达到最大GPU的内存
tf.Session(config=config)

我原本的代码中就有这些语句,所以这个方法对于我的代码没用。

5.2 显卡不适配问题

(1)报错

failed to run cuBLAS routine cublasSgemm_v2: CUBLAS_STATUS_EXECUTION_FAILED Blas GEMM launch failed

(2)解决方法

在这里插入图片描述
看到这位老哥的回答,太绝望了!!!的确30系显卡不支持cuda11以下版本!!!
在这里插入图片描述

没办法只能想其他方案,没办法只能使用TensorFlow2.0以上的版本了!

5.3 在TensorFlow2.* 的环境下使用1.* 的代码

将代码中含有的

import tensorflow as tf

都改为:

import tensorflow._api.v2.compat.v1 as tf
tf.disable_v2_behavior()

记得每个文件都要改一下哦~~~
请添加图片描述

6. 参考

PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】
windows环境下tensorflow安装过程详解
Win10下安装tensorflow详细过程
CPU和GPU的区别、工作原理、及如何tensorflow-GPU安装等操作
TensorFlow安装和下载(超详细)
2.0版本tensorflow中session和eager_execution的bug

CUDA与cuDNN安装教程(超详细)
Cuda和cuDNN安装教程(超级详细)

windows下同一个显卡配置多个CUDA工具包以及它们之间的切换


在这里插入图片描述

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值