上一期我们介绍了CUDA下载安装以及其总结,这一期教大家如何在Anaconda中使用CUDA来进行加速、神经网络依赖cuDNN的下载安装,以及下载和安装Pytorch-GPU安装包的三种方式(conda、pip、轮子)。

还未下载安装 CUDA 和 Anaconda,请看往期文章,是全套系列的总结,包你不用开很多网页,然而只为了下载安装一个工具而已。。。。

Anaconda中使用

在CUDA安装完之后,如果想要学习深度学习中的神经网络的话,则额外下载安装cuDNN,可帮助我们加快神经网络的运算,cuDNN是一个常见的神经网络层加速库文件,能够很大程度把加载到显卡上的网络层数据进行优化计算,而CUDA就像一个很粗重的加速库,其主要依靠的是显卡。cuDNN需要在有CUDA的基础上进行,可以在CUDA基础上加速2倍以上。

下载安装之前,这里再简要介绍几个关键概念

NVIDIA的显卡驱动器与CUDA

NVIDIA的显卡驱动程序和CUDA完全是两个不同的概念,CUDA是NVIDIA推出的用于自家GPU的并行计算框架,也就是说CUDA只能在NVIDIA的GPU上运行,而且只有当要解决的计算问题是可以大量并行计算的时候才能发挥CUDA的作用。

NVIDIA显卡驱动和CUDA工具包本身是不具有捆绑关系的,也不是一一对应的关系,CUDA本质上只是一个工具包而已,所以我可以在同一个设备上安装很多个不同版本的CUDA工具包,一般情况下,我只需要安装最新版本的显卡驱动,然后根据自己的选择选择不同CUDA工具包就可以了。

CUDA和cuDNN关系

CUDA看作是一个工作台,上面配有很多工具,如锤子、螺丝刀等。cuDNN是基于CUDA的深度学习GPU加速库,有了它才能在GPU上完成深度学习的计算。它就相当于工作的工具,比如它就是个扳手。但是CUDA这个工作台买来的时候,并没有送扳手。想要在CUDA上运行深度神经网络,就要安装cuDNN,就像你想要拧个螺帽就要把扳手买回来。这样才能使GPU进行深度神经网络的工作,工作速度相较CPU快很多。

注意:cuDNN是一个SDK,是一个专门用于神经网络的加速包,它跟我们的CUDA没有一一对应的关系,即每一个版本的CUDA可能有好几个版本的cuDNN与之对应,但一般有一个最新版本的cuDNN版本与CUDA对应更好。

CuDNN支持的算法

  • 卷积操作、相关操作的前向和后向过程
  • pooling的前向后向过程
  • softmax的前向后向过程
  • 激活函数的前向后向过程,如(Relu、Sigmoid、Tanh )等

cuDNN的下载与安装

第一步:官网下载cuDNN的安装包,地址:https://developer.nvidia.com/cudnn,这里需要你注册一个账号,按照要求注册完就可以下载安装包了,这里我的CUDA安装的是10.2版本的,我就安装与我CUDA对应的cuDNN了。

第二步:下载好安装包后,利用解压软件解压出来

第三步:复制粘贴 bin、include、lib三个文件到CUDA的安装目录进行覆盖替换,

cuDNN到此安装成功!

下面我介绍Pytorch-GPU的下载安装的三种方式

  • Conda安装(官网命令下载速度慢,设置镜像源后可加速)
  • Pip安装(设置镜像源,设置镜像源后可加速)
  • 轮子安装(官网下载轮子,轮子安装)

第一步:打开Anaconda Navigator中新建一个虚拟环境,选择Enviroments->Creat->点击,自己设置环境名(这里我设为py35)和Python版本,也可以用命令创建环境

第二步:创建完后,点击py35旁边的绿色三角形箭头,选择Open Terminal,在命令行中打开,我们就可以使用命令的方式在该虚拟环境py35中安装Pytorch-GPU了

第一种:Conda安装

第一步:首先我们来到Pytorch-GPU的官网,选择CUDA的安装平台以及版本、Conda或者Pip安装,在下方粘贴复制安装命令即可,但是这里下载速度极慢,很容易出现CondaHTTPError,因为默认的镜像是官方的,由于官网的镜像在境外,访问太慢或者不能访问,为了能够加快访问的速度,我们更改Conda下载安装包的镜像源

第二步:这里我们首先设置一下Conda下载安装包的镜像源,输入以下命令:

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

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

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

conda config --set show_channel_urls yes

第三步:添加完后,在用户目录下,如:C:\Users\11703 ,找到 .condarc 文件,使用记事本打开,删除里面的 defaults,这样能快点,或者在其前面加#号注释掉。

注意:用conda安装包的标准语法格式为:conda install -c <channel><packagename>,而pytorch官网中conda给的命令行是上图那样的,有-c选项,就说明已经指定了官方下载源,所以自己配置的镜像源不管用, 所以应该把-c pytorch去掉,就可以从镜像源下载文件了。

输入y,即正式下载和安装

友情提示:如果你想再次换源安装,需要使用以下命令conda config --remove-key channels恢复默认源的命令,否则会报错,然后再次配置你想要的镜像源。

第二种:Pip安装

pip添加源安装,等待一段时间安装完成即可,安装命令:

pip install torch===1.5.0 torchvision===0.6.0 -f https://download.pytorch.org/whl/torch_stable.html -i https://pypi.tuna.tsinghua.edu.cn/simple

第三种:轮子安装

pytorch轮子文件下载地址:https://download.pytorch.org/whl/torch_stable.html,分别下载安装torch和torchvision安装包,这里请注意自己安装的CUDA、以及torch、torchvision版本匹配,最后创建的Python环境请和下载的一致。如下图举例

下完轮子文件之后,命令窗口到相应虚拟环境以及轮子安装目录下,命令安装轮子,我的轮子文件放在了D盘,

这里注意: 安装Pytorch需要依赖包numpy、future,可以提前安装好,安装torch检测到没有numpy时,会自动帮我们下载安装依赖包numpy、future,不用担心,但是过程缓慢,建议提前安装后numpy、future。

下载安装torch完成后,我们开始安装torchvision,torchvision需要安装依赖包pillow,这里教大家提前安装的方法,使用如下命令,如果出现问题加上信任选项 trusted host,pip install-i https://pypi.tuna.tsinghua.edu.cn/simple--trusted-hostpypi.tuna.tsinghua.edu.cn pillow

安装torchvision

最后我们检测Pytorch-GPU是否安装完成

先使用命令pip list查看已安装的包列表,再输入命令python,然后 torch.cuda.is_available(),输出True,即安装成功

本期教程至此就结束了,觉得不错的点个赞吧,整理不易,希望大家支持,想要pytorch轮子安装包,关注我即可获取

更多有关python、深度和计算机编程的精彩内容,可以关注我的微信公众号:码农的后花园

官网安装Python包太慢?教你三种下载安装方式-PiP、conda、轮子,教你三种Pytorch的下载安装方式,保证你再也不用出现Error的更多相关文章

  1. 转: CentOS 6.4安装pip,CentOS安装python包管理安装工具pip的方法

    from: http://www.linuxde.net/2014/05/15576.html CentOS 6.4安装pip,CentOS安装python包管理安装工具pip的方法 2014/05/ ...

  2. CentOS 6.4安装pip,CentOS安装python包管理安装工具pip的方法

    CentOS 6.4安装pip,CentOS安装python包管理安装工具pip的方法如下: 截至包子写本文的时候,pip最新为 1.5.5 wget --no-check-certificate h ...

  3. RHEL6安装python包tornado

    RHEL6安装python包tornado tornado是使用Python开发的全栈式(full-stack)Web框架和异步网络库,最早由Friendfeed开发.通过使用非阻塞IO,Tornad ...

  4. 使用setup.py安装python包和卸载python包的方法

    使用setup.py安装python包和卸载python包的方法 记录安装后文件的路径 python setup.py install --record files.txt删除这些文件 cat fil ...

  5. pip安装python包出现Cannot fetch index base URL http://pypi.python.org/simple/

    pipinstall***安装python包,出现 Cannot fetch index base URL  http://pypi.python.org/simple /错误提示或者直接安装不成功. ...

  6. 在windows下安装python包管理器pip及使用

      从来没有在Windows下用过pip,今天试了下,原来pip也可以在Windows下安装,使用也和Linux下一样简单. 先从下面的地址下载pip源码: http://pypi.python.or ...

  7. 如何安装python包

    安装python包有两种方法: 使用Python包管理器pip工具 在Linux系统中,首先 yum install python-pip 然后就可以欢快的pip install *** 啦 源代码安 ...

  8. ubuntu下pycharm无法使用pip安装python包的修复方案

    1. 在pycharm 中安装python包会报错“pycharm ModuleNotFoundError: No module named 'distutils.core'”: 2. 可能原因:in ...

  9. Linux虚拟环境配置(安装python包,连接至jupyter notebook)

    在Linux虚拟环境下安装python包 方法一:使用下载包 由于实验室下载速度较慢,因此采用传输下载包的形式安装包. 首先导入python包至指定文件夹(任意文件夹,记住地址即可)并解压. 进入虚拟 ...

随机推荐

  1. 《笨办法学Python 3》python入门书籍推荐|附下载方式

    <笨办法学Python 3>python入门书籍免费下载 内容简介 本书是一本Python入门书,适合对计算机了解不多,没有学过编程,但对编程感兴趣的读者学习使用.这本书以习题的方式引导读 ...

  2. C#设计模式之17-中介者模式

    中介者模式(Mediator Pattern) 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/419 访问. 中介者模式 ...

  3. C#LeetCode刷题之#520-检测大写字母(Detect Capital)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3947 访问. 给定一个单词,你需要判断单词的大写使用是否正确. ...

  4. C#LeetCode刷题之#888-公平的糖果交换(Fair Candy Swap)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3758 访问. 爱丽丝和鲍勃有不同大小的糖果棒:A[i] 是爱丽丝 ...

  5. 深入解析Laravel的中间件

    Laravel 中间件是什么? 简而言之,中间件在 laravel 中的作用就是过滤 HTTP 请求,根据不同的请求来执行不同的逻辑操作. 我们可以通过中间件实现以下功能: 指定某些路由 设置 HTT ...

  6. 微信小程序WXML页面常用语法(讲解+示例)

    (一) WXML 是什么 官方说明:WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件.事件系统,可以构建出页面的结构 在前面我们就已经提过,WXML,就可 ...

  7. 使用vs2008的一个问题 2008-01-08 13:13

    昨天在写控制台版的一个管理系统.语言是:c++ ,开发工具是:vs 2008 .功能简单的描述一下,它是就是简单的查询,插入,删除等操作,操作的对象是一个xml文件. 这时我要需要一个命令行参数,根据 ...

  8. CODING DevOps 微服务项目实战系列第一课,明天等你

    CODING DevOps 微服务项目实战系列第一课<DevOps 微服务项目实战:DevOps 初体验>将由 CODING DevOps 开发工程师 王宽老师 向大家介绍 DevOps ...

  9. 用C++写一个电话通讯录

    目前我也是名初学C++的菜鸟,一直在B站上看的C++的网课,这个的C++电话通讯录是我写的第一个有一些功能的代码,所以在这里想分享给初学C++的小白们,如有任何问题或是建议可以在下方评论或是私信我,下 ...

  10. 动态数组java实现

    数组是一种顺序存储的线性表,所有元素的内存地址是连续的. 动态数组相对于一般数组的优势是可以灵活地添加或删除元素.而一般数组则受限于固定的内存空间.只能有限的添加元素 动态数组(Dynamic Arr ...