win10卸载CUDA10.0重新安装10.2以及torch1.6-gpu和tf2.2-gpu环境的配置

需要注意的说在前头,下面卸载和安装cuda可以参考给的链接里的内容,操作是一样的,但是cudnn与cuda文件的配置以及环境变量的配置不要按照那两篇博客的来,因为它针对的是cuda10.0的,文件结构的变化还是挺大的。第三个目录的"将cudnn部分文件放入cuda中"是我本身成功的经历,而且版本是10.2的,这个可以参考。

卸载cuda

windows下CUDA的卸载以及安装
按照这里的步骤卸载cuda之后最好是将原来的环境变量也删了,比如我之前是10.0版本的cuda,这几个就删掉了:
在这里插入图片描述

安装cuda

CUDA、CUDNN在windows下的安装及配置

将cudnn部分文件放入cuda中

首先将C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin路径下的:
在这里插入图片描述

cudart64_102.dll文件复制一份,然后改一下名字:cudart64_101.dll(实话实说,涉及到改名的多半是cuda的版本和tf版本不一致导致的,但是我就想用cuda10.2+tf2.2.0的,tf官方建议cuda安装10.1,但是我知道这个的时候已经安装完了10.2,不想再大费周折再去下载10.1),然后将cudnn解压之后的文件夹下的这个文件路径:D:\Program Files\cudnn10.2\cudnn-10.2-windows10-x64-v8.0.2.39\cuda\bin下的这个文件:
在这里插入图片描述

复制一份,然后放入cuda的相应文件夹下:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin
,若果不进行这一操作,就是像下面说到的tf-gpu版本配置的错误1一样。

环境变量的配置

win10+cuda10.2+cudnn+tensorflow2.1.0配置机器学习环境(2)—— cuda和cudnn下载安装
其实这篇文章中提到的有的不用配到环境变量中去,我在下载cuda的过程中将它提示的需要配置到环境变量中的路径截图了过来:
在这里插入图片描述

只有三个。

tensorflow-gpu版本的配置

错误提示1:
在这里插入图片描述

tf相对torch来说问题多点,各种各样的报错,当然你可以切换到虚拟环境中用:
conda install tensorflow-gpu
来下载当前版本的cuda可以支持的tf,因为conda会先分析当前的环境,自动匹配适合的版本包来安装。如果要用pip(比如我),就会有这些错误,上面这个错误就是cuda版本和tf2.2.0版本不对应所致,我是通过更改文件名来实现的,可能后面会有其他的问题,不过暂时用着还行。如果你的cuda版本是10.1那更好。改了文件名之后就成功了:
在这里插入图片描述

如果还是不成功能可能是你的英伟达驱动版本太低了,可以参考这篇博客:
https://blog.csdn.net/flana/article/details/104772614/

再加几篇讲的比较详细的安装tf-gpu2.2版本的的博客:
安装TensorFlow-gpu 2.2的详细教程:血泪巨坑(包教包会)

Tensorflow -gpu 2.2 pip详细安装教程

嫌弃导入tf包输出一堆红色字体,可以使用这两句来屏蔽输出:

import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'

试试结果:
在这里插入图片描述

torch-gpu版本的配置

其实配置torch-gpu版本的时候我并没有操作上面提到的将cudnn中的文件放入cuda文件夹中(即下载好了cuda就可以直接用了),只是当时出现了一个错误信息(遇到报错的时候不要慌,静下心来读一读它到底为什么报错),说是没有VC2015balabala的,解决方式很简单,将它报错信息中提供的一个网页搜索一下就会自动下载,当然我这里给出了网盘链接:
提取连接:
链接:https://pan.baidu.com/s/1AE4XE6yEfa1GYGw_92H9xw
提取码:1111

安装完了之后就可以测试一下:

import torch
flag = torch.cuda.is_available()
print(flag)

ngpu= 1
# Decide which device we want to run on
device = torch.device("cuda:0" if (torch.cuda.is_available() and ngpu > 0) else "cpu")
print(device)
print(torch.cuda.get_device_name(0))
print(torch.rand(3,3).cuda()) 

猜你喜欢

转载自blog.csdn.net/weixin_43141320/article/details/107977407