tensorflow1.xx和tensorflow2.xx需要用CUDA版本不一样,为了使用多版本的tensorflow,尝试安装多版本的CUDA和cuDNN,及切换对应版本的方法。
1、tensorflow与CUDA的版本对应关系如下:从源代码构建 | TensorFlow
本人已安装CUDA10.1,且成功运行,接下来继续安装CUDA10.0和CUDA9.0
2、CUDA下载
下载地址:
https://developer.nvidia.com/cuda-toolkit-archive
下载完成
3、安装CUDA10.0和CUDA9.0
推荐使用自定义安装,因为精简模式会覆盖部分驱动内容,可能引起系统崩溃。
1)自定义安装:
不同CUDA版本选择可能不一样,原则是,只勾选图中的五个,其他的都不要勾选。 如果有的版本没有图中的五个,那就有几个勾选几个。
2)精简模式安装:(注:手滑了,我是通过精简模式安装的,安装完成后我通过第7步骤更新了驱动,暂时没有发现问题。)
如果采用精简模式安装,先装低版本再装高版本,因为有的部分驱动会覆盖,保留高版本的驱动更好。采用精简方式安装完成后,最好更新一下驱动。
4、安装完成
安装完成后,在路径C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA下会出现三个文件夹
这表示三个版本的CUDA都安装成功且共存,打开CMD运行nvcc -V
这表示当前被选中的CUDA版本是10.0,即我们最后安装的那个CUDA版本,后面再介绍如何切换CUDA版本。
5、cuDNN下载
下载地址:
cuDNN Archive | NVIDIA Developer
根据图1,我们知道tensorflow在CUDA 10.0的情况下,支持的cuDNN版本最低是7.4
而tensorflow在CUDA 9.0的情况下,支持的cuDNN版本最低是7
所以我们下载稍微新一点的cuDNN7.6.5版本:
下载这个
6、安装cuDNN
将下载好的压缩包解压后,将对应的文件拷贝到CUDA安装路径对应的目录中,CUDA10.0做也一样的操作:
- 复制 cudnn\bin\cudnn64_7.dll 到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin\
- 复制 cudnn\include\cudnn.h 到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include\
- 复制 cudnn\lib\x64\cudnn.lib 到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64\
7、更新显卡驱动(精简模式下安装CUDA才需要此步骤)
通过精简方式安装CUDA可能会卸载显卡驱动,导致系统崩溃,所以安装完成后,最好更新一下显卡驱动,用驱动人生和驱动精灵都可以。
下面介绍通过手动的方式来更新显卡驱动。
驱动下载地址:
这两个都分别安装一次
默认安装即可。
8、切换不同版本
1)设置CUDA_PATH=v10.1
2)编辑Path路径
3)把v10.1的路径移动到v10.0和v9.0的前面,然后保存
4)打开cmd输入nvcc -V,此时CUDA就被选择为v10.1版本了
9、安装tensorflow1.15和pytorch 1.4.0
1)将CUDA切换到10.0版本
2)建立虚拟环境tensorflow115
conda create -n tensorflow115 python=3.7.0
3)激活tensorflow115
activate tensorflow115
激活之后查看CUDA版本
4)在虚拟环境中安装tensorflow 1.15版本
pip install tensorflow-gpu==1.15
安装完成,以后要用tensorflow1.15这个版本时,激活这个虚拟环境即可。其他版本的tensorflow也类似的安装方法。
5)在虚拟环境中安装pytorch 1.4.0版本
pip install torch===1.4.0 -f https://download.pytorch.org/whl/torch_stable.html
pip install torchvision===0.5.0 -f https://download.pytorch.org/whl/torch_stable.html
其他版本的pytorch也类似的安装方法。
10、安装tensorflow2.1.0和pytorch1.4.0
同第9步
1)将CUDA切换到10.1版本
2)建立虚拟环境tensorflow21
3)激活tensorflow21
4)在虚拟环境中安装tensorflow 2.1.0版本
5)在虚拟环境中安装pytorch 1.4.0版本
6)将CUDA版本切换回10.0版本
此时系统默认CUDA版本为10.0,我们使用tensorflow 2.1.0看看能不能调用CUDA10.1版本。
7)运行tensorflow数字识别代码
在CUDA10.0默认版本下,在虚拟环境tensorflow21仍能够通过tensorflow2.1.0来调用CUDA10.1版本,测试成功!!!
一些参看指令:
退出虚拟环境
conda deactivate
移除某个虚拟环境
conda remove -n yourenvname --all