【Pytorch框架班】学习进程-持续更新

1.Pytorch简介

2019-06-02 00:00 至 2019-06-03 23:59
任务1:Pytorch简介
任务2:配置电脑环境(pycharm+Anconda+pytorch)
任务3:开始学习Pytorch官方文档(参考资料:1.自动求导机制;2.CUDA语义;4.多进程最佳实践)

任务简介:《Pytorch官方文档》
学习时长:6/2—6/3
详细说明:
本节课所需资料包下载链接:
链接:https://pan.baidu.com/s/1Z2dIT2DnbH7b_2wSwcNzjQ
提取码:0bh5

1、本节第一部分将会向大家介绍pytorch,以及pytorch作为我们使用深度学习工具的优势。
观看绪论视频:
链接:https://pan.baidu.com/s/1Lx0WFKLUol9F8iaqypT73w
提取码:zoaz

2、第二部分观看资料包中的环境配置文档:如何配置环境(针对小白),基于window系统、Anconda、Pycharm、pytorch、(cuda+cudnn),环境配置好之后会进行小测试,验证配置的环境是否可以正常使用。
链接:https://pan.baidu.com/s/1h5IdE29tIhr8Y0XstfvMOA
提取码:rutq

3、第三部分正式进入我们的pytorch学习,工欲善其事必先利其器,我们从最基础pytorch官方文档API开始学习,首先是自动求导机制,这部分是在训练模型的时候使用,在进行预测的时候我们只进行前向传播,不进行反向传播,所以也就不需要求导,可以节约预测的时间;第二部分是CUDA语义,也就是我们如何选择显卡进行计算,同时会涉及到并行计算(这部分在项目部署的时候比较有用);第三部分也是并行计算多进程的内容。
特征工程是对原始数据进行一系列工程处理,将其提炼为特征,作为输入供算法和模型使用。做过项目或者竞赛的都应当了解特征工程的重要性,面对不在一个数量级的特征,类别性特征,高维特征,特征组合等等场景,我们应该怎么做。

pytorch文档均在资料包中。

打卡要求:在训练和测试时自动求导的区别?如何调用CUDA?程序中如何使用多进程?
打卡内容:文字或图片拍照提交,文字要求最少50字,图片要求最少3张
打卡截止时间:6/3

2.序列化模型,torch接口

2019-06-04 00:00 至 2019-06-05 23:59
任务:Pytorch官方文档(参考资料:Pytorch官方文档 5.序列化模型;6.torch接口)
任务简介:《Pytorch官方文档》
学习时长:6/4
详细说明:
本节任务资料包下载:

链接:https://pan.baidu.com/s/1Z2dIT2DnbH7b_2wSwcNzjQ
提取码:0bh5
本节内容包括如何保存和载入模型,我们一般情况下载训练阶段保存在预测阶段载入,同时需要了解两种方法保存模型的差异。下面是pytorch最重要的部分,对Tensor的操作,由于本节内容较多,我们分为七个部分讲解,今天主要是熟悉torch接口中1~9页的API,能够知道如何使用,知道每个函数的意义和参数的意义。
作业名称(详解):保存模型的两种形式以及他们的区别?手敲今天所学API三遍
作业提交形式:打卡提交文字或图片,不少于20字
打卡截止时间:6/5

3.深入了解torch接口

2019-06-05 00:00 至 2019-06-07 23:59
任务:深入了解torch接口(参考资料:6.torch接口API剩余部分10~85)
任务简介:《Pytorch官方文档》
学习时长:6/5—6/7
详细说明:
由于torch接口部分内容很多,我们利用三天时间深入了解torch接口该如何使用(其实很多操作和numpy很类似,只要numpy很熟练,这块上手很快),第一天主要学习torch张量(10~20页)的索引,切片,连接,换位操作,随机采样,序列化操作,并行化操作,其中对张量的操作这一块在以后应用中非常广泛,一定要熟练 。
第二天学习一些基本的数学操作API(21~56页),需要了解基本操作,知道如何使用 。第三天学习比较操作和其他操作,这些函数有一些太常用,只需熟练使用常用的操作。
资料下载:
链接:https://pan.baidu.com/s/17xW8rfG-14nu6vc9vjeBlQ
提取码:34k3

作业名称(详解):掌握基本的torch Tensor张量操作;
作业提交形式:打卡提交文字或图片,不少于20字
打卡截止时间:6/7

【Pytorch框架班】问题点总结

说明:
(1)pytorch使用0.4版本的官方文档,安装的是1.0版本,其中某些函数的区别,同学在问的时候我会整理好写成Word文档。
(2)我会把每天学生经常问的问题整理成Word文档 ,任务重说明,先看Word文档中有没有解决方案,如果没有再在群里问。整理好的文档会在本篇文章中定期更新,方便大家查阅资料就能解决问题,提高学习效率。
(3)项目实战最后一周会进行学习,大家先学基础API,不然项目也看不懂,打牢基础是最重要的。
(4)官方文档有可能有误,具体报错问题可以在群里问,然后会整理到文档中。
(5)每天同一个问题大于2次,我就会整理到文档中,其他小概率问题忽略

Day1
问题1:环境配置问题,请参考《1.window+pytorch配置》文档,只要按步骤来就不会报错,烦请仔细看。
链接:https://pan.baidu.com/s/1-9CNlHjGDEXoew_pvgtn6A
提取码:kw0x

Day2
问题1:官方文档中的错误(Day1/1.自动求导机制)
在这里插入图片描述

regular_input=torch.randn(1,3,224,224)#默认是True  
volatile_input=torch.randn(1,3,224,224)
Model=torchvision.models.resnet18(pretrained=True)
Model(regular_input).requires_grad
with torch.no_grad():
Model(volatile_input).requires_grad

总结:requires_grad=Fasle时不需要更新梯度, 适用于冻结某些层的梯度;
volatile=True相当于requires_grad=False,适用于推断阶段,不需要反向传播。这个现在已经取消了,使用with torch.no_grad()来替代。
维度不一致问题是函数所需维度和输入维度不一致,这个不是难点,只需根据需求更改即可,比如这个例子model需要[batch,channel,height,width]=[batch,3,224,224],后面讲网络结构会说到。

Day3
问题1:有关autograd和backward的问题:
在这里插入图片描述
问题点1:紫框部分报错是因为默认创建tensor的requires_grad=False,而backward需要requires_grad=True;
问题点2:蓝框部分报错是因为backward需要是scalar的数据,也就是需要的是标量类型的张量,简单说dim=0的张量就标量,dim=1的张量就是向量,dim=2的张量就是二维矩阵。

问题2
在这里插入图片描述
问题点1:参数问题,0.4版本是means,1.0版本是mean
问题点2:数据类型问题,mean和std需要float(浮点型)类型

4.本周学习任务简单总结

019-06-09 00:00 至 2019-06-09 23:59
任务名称:本周学习任务简单总结
任务简介:温故而知新,简单回顾本周学到几个重要知识
详细说明
每一周的学习任务都比较重,第一次学过之后特别容易忘,所以在周日及时做一个要点回顾,会让学习效率大大的提升,不会的知识也会越来越少
作业名称(详解):请用文字描述,本周所学知识的重点,也可以思维导图、手写、电子版截图或者拍照均可,格式不限
作业提交形式:PPT截图或手写拍照,打卡提交。不少于20字。
打卡截止时间:6/9

5.torch.Storage操作

2019-06-10 00:00 至 2019-06-11 23:59
任务名称:Pytorch官方文档(参考资料:Pytorch官方文档 8.torch.Storage操作;14.torch.cuda操作)
任务简介:torch.Storage 主要是Tensor数据类型的转换;torch.cuda;
详细说明:
Day8的任务两块,第一块是Storage操作,主要包括数据类型转换的接口;第二块是如何使用判断是否有显卡,以及如何把数据和模型在显卡上运行。
作业资料包下载链接:
链接:https://pan.baidu.com/s/17xW8rfG-14nu6vc9vjeBlQ
提取码:34k3
作业名称(详解):(1)自己练习数据类型之间的转换方法(2)测试在显卡上训练和在cpu上训练的速度差多少倍;
作业提交形式:打卡提交文字或图片
打卡截止时间:6/11

【Pytorch框架班】问题点总结

同上。

6.数据读取、数据扩增

2019-06-11 00:00 至 2019-06-12 23:59
Day9~Day10
任务名称:1.数据读取;2.数据扩增[参考资料:(1)PyTorch_tutorial_0.0.5_余霆嵩文档1~16页(2)pytorch官方文档
16.torch.utils.data;
17.torch.utils.model_zoo;
18.torchvision.datasets;
19.torchvision.models;
20.torchvision.transforms;
21.torchvision.utils]
任务简介:数据读取和自定义数据集的读取操作;数据集的扩增的方法;
详细说明
Day9~ Day10的任务是数据的读取和数据的扩增,在学习之前需要我们把官方文档16~21的资料学习,然后学习余霆嵩大神整理的资料,这里包括了数据读取和数据扩增的方法基本操作的API。数据扩增在我们数据有限的情况下可以通过数据扩增得到更多的数据,一方面可以抑制过拟合一方面可以提高模型泛化性,pytorch中封装了22中数据扩增的方法,基本包括了我们常用扩增方法,可以根据需求调用各自方法。
作业资料包下载链接:
链接:https://pan.baidu.com/s/17xW8rfG-14nu6vc9vjeBlQ
提取码:34k3
作业名称(详解):(1)使用提供的网络模型读取自己数据进行训练;(2)使用22中数据扩增的方法进行组合,测试其效果;
作业提交形式:打卡提交文字或图片,不少于20字
打卡截止时间:6/12

猜你喜欢

转载自blog.csdn.net/weixin_41990278/article/details/91360036
今日推荐