windows10下安装tensorflow2.0-GPU和Cupy(不用搞CUDA+cudnn)

  • Post author:
  • Post category:其他



0.前言

今年暑假买了个1660ti的游戏本学python,后来发现跑一些数据量比较大的代码和深度学习的时候太慢了,遂想装一下GPU版本,看了网上的资料搞了好几天,又是CUDA又是cudnn的,网速慢不说,装完还各种报错,最后发现随着anaconda和tensorflow的更新,

现在利用anadonda只要一行命令就能完成。(装好虚拟环境后,

直接看4.2




1. 安装anaconda



这部分没啥难度,只要注意两点:

1.去官网下载

https://www.anaconda.com/distribution/

,而不要去清华的镜像站(已经很久没有更新了),官网下比清华慢一点,但相信我这是值得的。

2.安装的时候建议直接把两个勾都选上(网上的其他教程都建议不勾选然后手动添加PATH,但我发现直接勾上没问题,之后加PATH反而有各种问题出现)

#.如果之前电脑里已经有安装python,建议先卸载再装anaconda,这样能避免很多问题

做完这一步你就拥有了一个预装了很多包的base环境,包括pandas和numpy,足够初学者做很多事情了。


2. 换清华源

虽然上面说anaconda的安装包不要去清华上下,但是用镜像站来下载和更新python包还是可以的(能快上不少)。打开CMD,复制打入就行

conda config –add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config –add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge

conda config –add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/

conda config –set show_channel_urls yes


3.创建一个另外的虚拟环境



起先看网上教程的时候一直不明白这一步有什么用,处理了很多报错以后发现这是为了避免依赖包版本冲突。例如你在官网上下载的anaconda,自带的base环境是python3.8,而tensorflow是建议装python3.6,它要求的各种依赖包也是python3.6时代的,直接在base环境下安装,需要将本来是最新的软件包降级,可能会影响其他包,最新的功能就用不到了。

所以创建虚拟环境可以完全避免依赖包冲突,需要使用tensorflow的时候切换过来就行。

3.1 打开CMD(如果你把anaconda装在了C盘,建议使用管理员运行,可以事先避免权限报错),键入:

conda create -n env_gpu python=3.6

(env_gpu是你给虚拟环境起的名字,依个人喜好就行,网上大多叫tensorflow或者env_tf2,我这边叫env_gpu是因为我用这个环境来跑需要gpu加速的任务:tensorflow-gpu和cupy)

按y回车,anaconda就会安装一些必须的包(换源之后是很快的)


4. 在虚拟环境下安装tensorflow-GPU(用于机器学习)和cupy(numpy的GPU加速版本)




4.1 首先激活虚拟环境:

conda activate env_gpu

(整个第4步的cmd都别关掉,用同一个,假如手滑关了,就要再激活一次虚拟环境)

可以看到前面有个括号表明所在的环境


4.2.安装tensorflow-gpu和cupy



conda install tensorflow-gpu=2.0.0

conda install cupy

(一行一行来)

可以看到anaconda会自动安装匹配版本的cuda和cudnn,不用去英伟达官网下载了,也避免了操心版本问题。


4.3 安装spyder, jupyter notebook



因为我们在第三步创建了一个独立的虚拟环境,和原来base环境里的spyder和jupyter notebook是不通用的,所以在这个环境下手动安装一个就行:

conda install spyder

conda install jupyter

安装完以后可以在开始菜单搜索spyder,(anaconda)结尾的是base环境下的spyder, (env_gpu)结尾的是这个环境下的spyder。


5.测试一下吧




5.1 打开spyder(env_gpu)

5.2 键入一些测试的code

5.3 cupy也导入测试下


都没有报错,大功告成!