PyTorch的深度学习入门之PyTorch安装和配置


Posted in Python onJune 27, 2019

前言

深度神经网络是一种目前被广泛使用的工具,可以用于图像识别、分类,物体检测,机器翻译等等。深度学习(DeepLearning)是一种学习神经网络各种参数的方法。因此,我们将要介绍的深度学习,指的是构建神经网络结构,并且运用各种深度学习算法训练网络参数,进而解决各种任务。本文从PyTorch环境配置开始。PyTorch是一种Python接口的深度学习框架,使用灵活,学习方便。还有其他主流的深度学习框架,例如Caffe,TensorFlow,CNTK等等,各有千秋。笔者认为,初期学习还是选择一种入门,不要期望全都学会。须知,发力集中才能深入挖掘。乱花渐欲迷人眼,选择适合自己的,从一而终,相信会对科研大有裨益!

***************************************************

说明:本文乃至本系列全部文章都是在PyTorch0.2版本下做的。现在版本更新了很多,会有一些API的更改,请大家注意Follow最新的变化,以免由于版本问题受到困扰。

***************************************************

1. 环境说明

PyTorch目前支持OSX和Linux两种系统,并且支持多种安装方式。在官网上介绍了基于conda,pip和源代码编译几种不同的安装方式。支持的Python版本有2.7,3.5和3.6。鉴于深度学习需要的计算量一般比较大,强烈建议找到一个有独立显卡的电脑来展开学习,当然没有显卡也能用,就是计算慢很多了。

如果你的电脑是Windows,那么可以安装一个虚拟机来运行Linux,但是性能可能会折扣。我的电脑操作系统是Ubuntu16.04,所以我会以此为例子来介绍后面的内容。

PyTorch的深度学习入门之PyTorch安装和配置

 2. Anaconda 和Python

PackageManager我们选择conda,于是我们需要安装Anaconda这个功能强大的包,下载地质:https://www.anaconda.com/download/ 。里面包含了conda工具,也有Python,以及很多Python需要的扩展工具包。选择2.7版本,下载并安装即可。接下来,如果有显卡,进入第3步;没有显卡直接到第4步。

PyTorch的深度学习入门之PyTorch安装和配置

3. 显卡驱动和CUDA

要使用显卡进行运算,你需要使用支持CUDA的NVIDIA显卡,目前比较好的显卡有NVIDIATITANX、GTX1080Ti 等。好的显卡将会是深度学习研究的有力武器。当然,普通的显卡例如GTX970、GTX1060等也是可以用的。实在没有显卡,那只能做简单的小数据量的实验,效果不会太好。

在Ubuntu16.04上可以采用以下方法安装显卡驱动,这种方式比较稳定。打开“SystemSettings”——“Software&Updates” —— “AdditionalDrivers”,联网状态会自动搜索可用的显卡驱动,选择可用的版本,点击“ApplyChanges”即可。可能重启动后显卡驱动才能生效。

接下来安装CUDAToolkit。因为最新的CUDA是9.0版本,但是PyTorch只能支持到8.0。所以转到该网址“https://developer.nvidia.com/cuda-80-ga2-download-archive”,选择对应的参数,下方会有对应的CUDA文件。例如,下图是我选择的版本。选择deb文件,发现有1.9G大小,下载下来,按照baseinstaller的指示来完成安装。附加的cuBLAS也可以下载下来安装上。

CUDA安装完成后,在主目录下打开“.bachrc”文件,在末尾添加如下代码:

export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

 PyTorch的深度学习入门之PyTorch安装和配置

4. 运行PyTorch的安装命令

如果你和我一样,采用8.0CUDA,2.7版本Python,可以运行以下命令:

conda install pytorch torchvision cuda80 -c soumith

如果没有显卡,2.7版本Python,可以这样:

conda install pytorch torchvision -c soumith

5. 验证安装是否成功

要显示显卡信息,在终端输入:

sudo lshw -c video

要显示CUDA信息,在终端输入:

nvcc -V

查看Phthon版本,在终端输入:

python --version

验证pytorch是否安装成功,在终端输入:

python

此时进入python环境。然后,继续输入

import torch

import torchvision

不报错就表明安装成功。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python每次处理固定个数的字符的方法总结
Jan 29 Python
python中查找excel某一列的重复数据 剔除之后打印
Feb 10 Python
在Python的Flask框架中使用模版的入门教程
Apr 20 Python
Python的Socket编程过程中实现UDP端口复用的实例分享
Mar 19 Python
python对象及面向对象技术详解
Jul 19 Python
详解Python如何获取列表(List)的中位数
Aug 12 Python
python音频处理用到的操作的示例代码
Oct 27 Python
pymongo中group by的操作方法教程
Mar 22 Python
Python文件操作中进行字符串替换的方法(保存到新文件/当前文件)
Jun 28 Python
python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例
Feb 28 Python
python正则表达式re.match()匹配多个字符方法的实现
Jan 27 Python
Python接口自动化之文件上传/下载接口详解
Apr 05 Python
解决pycharm remote deployment 配置的问题
Jun 27 #Python
python turtle库画一个方格和圆实例
Jun 27 #Python
Python实现的对一个数进行因式分解操作示例
Jun 27 #Python
python pytest进阶之xunit fixture详解
Jun 27 #Python
Python批量查询关键词微信指数实例方法
Jun 27 #Python
Django框架orM与自定义SQL语句混合事务控制操作
Jun 27 #Python
Pycharm保存不能自动同步到远程服务器的解决方法
Jun 27 #Python
You might like
PHP XML数据解析代码
2010/05/26 PHP
php类中private属性继承问题分析
2012/11/01 PHP
APACHE的AcceptPathInfo指令使用介绍
2013/01/18 PHP
php验证是否是md5编码的简单代码
2014/04/01 PHP
php开启与关闭错误提示适用于没有修改php.ini的权限
2014/10/16 PHP
PHP实现mysqli批量执行多条语句的方法示例
2017/07/22 PHP
实用javaScript技术-屏蔽类
2006/08/15 Javascript
用原生js做个简单的滑动效果的回到顶部
2014/10/15 Javascript
JavaScript fontsize方法入门实例(按照指定的尺寸来显示字符串)
2014/10/17 Javascript
javascript实时获取鼠标坐标值并显示的方法
2015/04/30 Javascript
Javascript 基础---Ajax入门必看
2016/07/06 Javascript
JS触摸与手势事件详解
2017/05/09 Javascript
js实现水平滚动菜单导航
2017/07/21 Javascript
利用JavaScript实现栈的数据结构示例代码
2017/08/02 Javascript
jQuery图片缩放插件smartZoom使用实例详解
2017/08/25 jQuery
node.js学习之断言assert的使用示例
2017/09/28 Javascript
three.js中3D视野的缩放实现代码
2017/11/16 Javascript
Vue 页面跳转不用router-link的实现代码
2018/04/12 Javascript
对node.js中render和send的用法详解
2018/05/14 Javascript
vue富文本框(插入文本、图片、视频)的使用及问题小结
2018/08/17 Javascript
vue-cli 3.x 修改dist路径的方法
2018/09/19 Javascript
vue-router 前端路由之路由传值的方式详解
2019/04/30 Javascript
JavaScript如何使用插值实现图像渐变
2020/06/28 Javascript
JavaScript常用8种数组去重代码实例
2020/09/09 Javascript
python为tornado添加recaptcha验证码功能
2014/02/26 Python
python定时关机小脚本
2018/06/20 Python
Python实现常见的回文字符串算法
2018/11/14 Python
使用css如何制作时间ICON方法实践
2012/11/12 HTML / CSS
描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理
2015/03/25 面试题
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
2014/07/21 面试题
计算机大学生的自我评价
2013/10/15 职场文书
会计毕业自我鉴定
2014/02/05 职场文书
小学教师师德整改措施
2014/09/29 职场文书
道德模范事迹材料
2014/12/20 职场文书
2015年妇委会工作总结
2015/05/22 职场文书
2015年十月一日放假通知
2015/08/18 职场文书