最近在学习PyTorch这个深度学习框架,在这里做一下整理分享给大家,有什么写的不对或者不好的地方,还请大侠们见谅啦~~~
本文就是主要是对PyTorch的安装,以及入门学习做了记录,也可以算是用自己的理解对文档进行了翻译。
先附上链接地址哦:
PyTorch官网:https://pytorch.org/
PyTorch :A 60 Minute Blitz:https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html
PyTorch是一个深度学习框架;
支持GPU并行处理的张量计算;
支持动态神经网络的构建;
比较容易学习;
大多数的框架,例如常见的caffe,TensorFlow都需要构建静态图,构建好一个神经网络之后需要重复使用相同的结构。而PyTorch则允许改变网络的运行方式,在构建神经网络时只需要定义网络中的层结构以及前向传播函数即可,反向传播求梯度的过程它都会自动完成。
除此,使用起来比较方便,对于我自己这样的新学者来说真的是非常友善啦,官网提供了详细的安装以及各种入门指导,还提供了丰富的examples供我们学习~
PyTorch的安装在官网上有给出方法,按照
按照自己的电脑配置去选择,pip下记得要加sudo。
我自己的环境是:ubuntu14.04+anaconda
具体的配置过程戳这里
ubuntu14.04+anaconda 配置PyTorch:https://www.jianshu.com/p/dd2e6b71b228
安装好之后,可以来试一试了~
Tensor是PyTorch中最基础的数据表示方法,它用于代替numpy中的数组,可以支持GPU的并行计算。
具体的介绍在这里哦:
PyTorch入门学习(一):What is PyTorch?:https://www.jianshu.com/p/108f8048cdc9
里面介绍了Tensor的基本用法,包括:
包导入
构建矩阵
构建随机矩阵
获取Tensor大小
Tensor的4种加法
Tensor索引方法
Tensor与numpy array的相互转换
Tensor移到GPU上
前面提到的自动求梯度就是通过autograd
包实现的,是神经网络的核心部分,可以通过代码的运行情况来决定反向传播的过程, 这样就使得每一次的迭代都可以是不一样的.
具体的戳这里哦:
PyTorch入门学习(二):Autogard之自动求梯度:https://www.jianshu.com/p/d475db3506f5
看完这个就能学会怎么样建立计算图并自动求梯度了。
现在来学习一下如何构建神经网络哦~
Pytorch入门学习(三):Neural Networks:https://www.jianshu.com/p/d5af8aea4229
这里介绍了torch.nn
包,通过学习可以知道:
怎么样定义一个神经网络
处理输入以及调用backward
函数
计算损失函数
迭代更新网络的权重
看完上面的三篇应该算是掌握了神经网络的最基础的三个部分了,这里就实现了一个CIFAR10的分类器,除此还介绍了常用数据包的获取方法。
Pytorch入门学习(四)-training a classifier:https://www.jianshu.com/p/74dd44f1e654
放一张结果图在这里吧
展示的是各个类别测试过程中的精度。
基本上简单的网络都可以照着这个思路去实现出来。
60分钟入门学习的最后一篇当然是给我们的GPU并行计算啦,这个很简单,直接戳吧。
PyTorch入门学习(五):Data Parallelism:https://www.jianshu.com/p/0bdf846dc1a2
最后,更多更完整更权威的学习资料还是在官方指南:
PyTorch Tutorials:https://pytorch.org/tutorials/#
陆陆续续终于整理完了这篇文章,呼一口气~
原文链接:https://www.jianshu.com/p/961a876eda2d
加入AI学院学习 -
点击“ 阅读原文 ”进入学习