PyTorch:60分钟入门学习

96
与阳光共进早餐
2018.01.15 21:26* 字数 955

最近在学习PyTorch这个深度学习框架,在这里做一下整理分享给大家,有什么写的不对或者不好的地方,还请大侠们见谅啦~~~

一 写在前面

未经允许,不得转载,谢谢~

本文就是主要是对PyTorch的安装,以及入门学习做了记录,也可以算是用自己的理解对文档进行了翻译。

先附上链接地址哦(直接点击即可):
PyTorch官网
PyTorch :A 60 Minute Blitz

二 PyTorch 是什么

  • PyTorch是一个深度学习框架;
  • 支持GPU并行处理的张量计算;
  • 支持动态神经网络的构建;
  • 比较容易学习。

大多数的框架,例如常见的caffe,TensorFlow都需要构建静态图,构建好一个神经网络之后需要重复使用相同的结构。而PyTorch则允许改变网络的运行方式,在构建神经网络时只需要定义网络中的层结构以及前向传播函数即可,反向传播求梯度的过程它都会自动完成。

除此,使用起来比较方便,对于我自己这样的新学者来说真的是非常友善啦,官网提供了详细的安装以及各种入门指导,还提供了丰富的examples供我们学习~

三 PyTorch 的安装

PyTorch的安装在官网上有给出方法,按照


按照自己的电脑配置去选择,pip下记得要加sudo。
我自己的环境是:ubuntu14.04+anaconda
具体的配置过程戳这里
ubuntu14.04+anaconda 配置PyTorch

四 PyTorch 60分钟入门教程

安装好之后,可以来试一试了~

1 初识PyTorch之Tensor

Tensor是PyTorch中最基础的数据表示方法,它用于代替numpy中的数组,可以支持GPU的并行计算。
具体的介绍在这里哦:
PyTorch入门学习(一):What is PyTorch?
里面介绍了Tensor的基本用法,包括:

  • 包导入
  • 构建矩阵
  • 构建随机矩阵
  • 获取Tensor大小
  • Tensor的4种加法
  • Tensor索引方法
  • Tensor与numpy array的相互转换
  • Tensor移到GPU上

2 PyTorch之自动求梯度

前面提到的自动求梯度就是通过autograd包实现的,是神经网络的核心部分,可以通过代码的运行情况来决定反向传播的过程, 这样就使得每一次的迭代都可以是不一样的.
具体的戳这里哦:
PyTorch入门学习(二):Autogard之自动求梯度
看完这个就能学会怎么样建立计算图并自动求梯度了。

3 PyTorch之神经网络

现在来学习一下如何构建神经网络哦~
Pytorch入门学习(三):Neural Networks
这里介绍了torch.nn包,通过学习可以知道:

  • 怎么样定义一个神经网络
  • 处理输入以及调用backward函数
  • 计算损失函数
  • 迭代更新网络的权重

4 PyTorch之训练分类器

看完上面的三篇应该算是掌握了神经网络的最基础的三个部分了,这里就实现了一个CIFAR10的分类器,除此还介绍了常用数据包的获取方法。
Pytorch入门学习(四)-training a classifier
放一张结果图在这里吧


展示的是各个类别测试过程中的精度。
基本上简单的网络都可以照着这个思路去实现出来。

5 PyTorch之并行计算

60分钟入门学习的最后一篇当然是给我们的GPU并行计算啦,这个很简单,直接戳吧。
PyTorch入门学习(五):Data Parallelism

参考文献

最后,更多更完整更权威的学习资料还是在官方指南:
PyTorch Tutorials

陆陆续续终于整理完了这篇文章,呼一口气~

正经脸:小菜鸟一只,有问题还请多多指教!

CV奇妙学习之旅
Gupao