安装过程中遇到了不少坑比如更换源与不更换源,conda install与pip install的区别,如何下载更快,如何配置GPU加速等,在下面的文章中我会指明。
一 :anaconda以及各种库的安装
anaconda是一个安装包管理器,但是它还具有环境隔离的作用,就比如我安装了python3.5以及配套的各种库,过了一段时间我想要更换python3.7和对应版本的库但是又不想卸载原有的库,此时anaconda的环境隔离就很有用了,因为在anaconda的各个环境内可以任意安装各种库,并且环境之间互相不影响。
anaconda下载地址为:
https://www.anaconda.com/products/individual
把网页拉到底,选择下载版本:
这里我是使用的是与python3.7对应的版本。下载完毕之后直接双击打开,选择同意,下一步即可,然后直到提示环境变量时按照下图配置:
然后一切按照默认执行。安装完毕后找到下图文件:
点击进入一个类似于DOS窗的环境,接下来我们要做的就是在anaconda里面建立一个环境,在该环境下安装各种库(环境与环境之间独立,所以再新建别的环境时不会有影响。)
首先执行下图红框圈中的命令建立环境:
自此,环境建立完毕。接下来要做的是进入刚才建立的环境,在该环境下进行各种库的安装:
首先进入环境
然后把常用的库安装上,包含:opencv-python,opencv-contrib-python,scipy,tensorflow-gpu,numpy,matplotlib。
下面就说明这些库怎么安装(给出两种方法):
1.使用默认源:
上图就是用pip安装opencv(安装其他库同理,只需要把install后面的库名字改掉),使用的是默认源,下载比较慢,可能会下载失败。其实对于已经推出了一段时间的版本,我们完全可以使用国内源。
2.换用国内源
这里举的例子是安装tensorflow 2.1.0的GPU版本:
pip install tensorflow-gpu==2.1.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
可以看到我使用的是清华的镜像站(请额外注意,pip使用清华的镜像站的确很快,但是anaconda就不要再使用清华镜像站了,因为已经不支持了,需要换中科大的镜像站)。安装别的库也是同理,把install后面的库名字换掉即可。
在使用上述两种方式把库安装完毕后我们可以在环境内使用pip list查看都安装了什么库,我电脑上在anaconda之外还有一个python3.7版本及对应的库,只不过那时候是手动下载各种库然后使用pip3安装(点击这里查看)。请注意,在anaconda的独立环境内我们是使用pip安装的,这是不同点。正是这个不同点让我看到了以下的现象:在cmd中定位到我原本安装的python目录下,然后执行pip list输出的是anaconda本身的库(不是anaconda内各个独立环境内安装的库,这是不可见的),pip3 list输出的才是我在anaconda独立环境之外安装的库。在anaconda的独立环境内使用pip list输出的是该环境安装的库(请注意不是anaconda本身安装时的库,二者不一样,等一下再说),而使用pip3 list输出的则是在anaconda独立环境之外安装的库。也就是以后我在anaconda外给原本的python安装库时就得使用pip3,在anaconda的任意环境之内需要使用pip安装库,否则就会串库(比如在anaconda独立环境内使用pip3 uninstall xxx会把外面的库卸载掉而不是卸载该环境的库),这点不知道为什么没有隔离开。不过在各个环境间使用pip是互不影响的,并且anaconda外安装的python的库与anaconda环境内安装的库互相不能调用
请注意:anaconda本身在没有建立任何环境时是具有一个python版本的(就是下载时那个版本),这个版本可以形象的称之为实体版本python,它对应安装的库位于:Lib的site-packages内
在上面Lib的同级目录下有一个目录envs:
我们在anaconda内建立的独立环境就位于该文件夹下:
可以看到现在只有一个环境名为Tensorflow_surrounding2.1,我们进入环境的根目录:
可以看到这里也有一个Lib目录,打开后发现也有名为site-packages的目录,这里存放的便是在独立环境内下载的库了:
并且在Tensorflow_surrounding2.1这个目录里还能看到python编译器:
这便是在该独立环境下安装的python,形象的称之为虚拟版本的python(相对于上面讲的anaconda本身的实体版本的python)。接下来在安装英伟达套件的时候还会再辨析conda iinstall与pip install的区别。
截止到目前,我们已经完成的任务是安装anaconda,建立独立环境,在独立环境内安装tensorflow,opencv等各种库。下面就是要安装tensorflow的GPU加速支持相关的套件,这个必须要安装,除非安装的是CPU版本的tensorflow。
二 :CUDA,CUDNN的安装
这两个东西是英伟达针对自加显卡推出的深度学习以及GPU加速的套件,安装方法如下:
(1.)首先还是先进入刚才建立的独立环境Tensorflow_surrounding2.1,然后我们需要给conda install更换源,因为这两个东西很大,不换源实在是太慢:
输入conda config --show,然后会给出一大堆输出,找到下图圈中的段落:
我这里已经更换了中科大的源,在没更换之前这里为空。
然后添加中科大的源:
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
添加之后效果就是刚才看到的那样,只有中科大一个channel,直接就成为了默认源。
接下来输入命令:
conda config --set show_channel_urls yes
然后换源工作就完成了。如果是后期要换默认源的话使用下列命令删除中科大源,再按上边换源步骤从头来:
conda config --remove channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
(2.)更新显卡驱动
安装那两个套件要求必须是英伟显卡,并且驱动本版大于418.96。
我电脑是GTX 1050ti,原本驱动版本是387,去官网下载新版驱动:
https://www.nvidia.com/Download/Find.aspx?lang=en-us
然后按照下图方法找驱动:
其中一定要注意两个红框部分,笔记本要选带notebook标识的,Type要选择标准,否则下载的驱动就是带dch后缀的,这个是没有控制面板的驱动,安装不上。
点击search后如图:
点进去点击下载会跳转一个页面:
请不要直接点击下载,因为直接下载很慢很慢,请右键复制下载按钮的链接到迅雷下载,这样速度很快。下载完毕后双击打开,会先检查兼容性,然后就选精简安装,然后一路默认下来就OK了。别忘了更新完重启电脑,重启后鼠标右键打开英伟达驱动面板就会发现版本号更新了。
(3.)接下来的任务就是安装两个套件,在更换源之后下载起来就比较快了:
a.)
conda install cudatoolkit=10.1
conda install cudnn=7.6
自此,一切任务都完成了,验证是否安装成功见下图:
上图就是各种库安装无误,tensorflow GPU加速一切正常时的结果。
注:在安装英伟达套件的时候是conda install,这跟pip install有什么区别?
区别:
(1.)pip install只能安装标准的python库;conda install可以安装各种库,不只是python的库。
(2.)pip install是在某个独立环境下使用的,安装的库位于各个独立环境的Lib->site-packages下(见上文)。在一个独立环境下用pip安装的库在别的独立环境不可见。conda install也是在某个独立环境下使用的,然而它下载的库位于anaconda根目录的pkgs目录下,该目录是envs目录的同级目录,而envs下就是建立的各个独立环境(见上文),anaconda会把下载的文件安装到各个独立环境内,在各独立环境根目录下的Library->bin内可以找到。之后在别的独立环境再次执行conda install的时候会先去anaconda根目录下的pkgs目录找对应的文件,如果有就直接复制到独立环境并安装,找不到时才会下载,然后再安装到独立环境。所以说在某一个独立环境内conda install是先下载一次然后在别的独立环境都可以免下载直接安装,而pip install就是每次都是先下载再安装(即使已经有独立环境用pip install安装了相应的包,换一个独立环境还是要再次下载)。