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也导入测试下
都没有报错,大功告成!