查看原文
其他

10分钟入门pytorch(0)

2017-06-08 Sherlock 机器学习算法与自然语言处理

10分钟入门pytorch(0)


我将我学习pytorch的经验写出来,一步一步从0开始让大家学会pytorch,教程比官网的更加简单,同时也增加了更多简单的例子让大家快速上手pytorch,愉快地开始炼丹。


什么?你还不知道pytorch是啥,快点去看看专栏里面的pytorch介绍吧。



1  环境配置


首先当然是需要安装pytorch了,目前pytorch只支持mac和linux,如果你的电脑是windows,装虚拟机或者双系统。如果想要愉快地炼丹,那么强烈推荐使用linux系统,因为所有的深度学习框架在linux上都有很好的支持,远远好于windows系统,而且linux也没有大家想象中的那么难学,目前linux系统的图形界面让大家上手的时候更加容易。


装完了系统之后就需要安装环境了,首推Anaconda,这是一个科学计算的集成环境,安装完这之后基本所需要的包都有了,而且还提供交互式的jupyter notebook,可以说为我们做实验提供了很好的交互。如果去Anaconda的官网下载速度比较慢,可以去清华镜像下载。


安装完Anaconda之后我们就可以安装pytorch了,进入主页,一步一步来就行了,如果要装GPU版的,需要cuda和cudnn,这个网上有很多教程,可以去看看,如果你只是为了快速上手玩玩pytorch,那么可以不用废时间装GPU版。


2  pytorch基础


装好了pytorch之后,正式进入我们的教程,pytorch基础部分,这个部分主要是介绍一下pytorch处理的对象以及操作。


Tensor


首先介绍里面最基本的操作对象,tensor


tensor就是张量的英文,表示多维的矩阵,比如一维就是向量,二维就是一般的矩阵等等,pytorch里面处理的单位就是一个一个的tensor

可以显示的得到其大小


这个和numpy很相似,同时tensor和numpy.array之间也可以相互转换



tensor的运算也很简单,一般的四则运算都是支持的

Variable


pytorch和numpy不一样的地方就来了,就是其提供了自动求导功能,也就是可以自动给你你要的参数的梯度,这个操作由另外一个基本元素提供Variable


本质上Variable和Tensor没有区别,不过Variabel会放入一个计算图,然后进行前向传播,反向传播以及自动求导


一个Variable里面包含着三个属性,data,grad和creator,其中creator表示得到这个Variabel的操作,比如乘法或者加法等等,grad表示方向传播的梯度,data表示取出这个Variabel里面的数据

这就是一个简单的计算图的例子


2  神经网络


前面讲了两个操作对象,最后讲一下pytorch里面的模型建立,模型的建立主要依赖于torch.nn,torch.nn包含这个所有神经网络的层的结构



这就是构建所有神经网络的模板,不管你想构建卷积神经网络还是循环神经网络或者是生成对抗网络都依赖于这个结构


本文所有代码以及后续的教程代码都在github上,强烈推荐进入github下载全部代码进行学习,地址为:https://github.com/SherlockLiao/pytorch-beginner

ok,这次介绍了安装环境,引入了基本的pytorch处理单元,相信大家对pytorch也有了一个基本了解,下节内容预告 线性回归和logistic回归

本文代码已经上传到了github

欢迎查看我的知乎专栏,深度炼丹

欢迎访问我的博客:https://sherlockliao.github.io/

近期文章预告:

《通俗讲解为什么神经网络参数初始化不能全0的原因》

《10分钟快速入门pytorch(1)》

《通俗讲解隐马尔科夫模型(HMM)-后向算法》

《通俗讲解隐马尔科夫模型(HMM)-维特比算法》

   推荐阅读文章:

深入浅出理解决策树算法(一)-核心思想

隐马尔科夫模型-前向算法

零基础掌握极大似然估计

投稿请联系微信号qinlibo20133868或者m15840540712@163.com


全是通俗易懂的硬货!只需置顶~欢迎关注交流~



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存