pytorch 学习率代码_【深度学习】Pytorch编写代码基本步骤思想

作者:忆臻 (哈工大SCIR实验室在读博士生)
魏福煊 哈工大英才实验班本科生
谢天宝 哈工大英才实验班本科生

一、前言

在我们要用pytorch构建自己的深度学习模型的时候,基本上都是下面这个流程步骤,写在这里让一些新手童鞋学习的时候有一个大局感觉,无论是从自己写,还是阅读他人代码,按照这个步骤思想(默念4大步骤,找数据定义、找model定义、(找损失函数、优化器定义),主循环代码逻辑),直接去找对应的代码块,会简单很多。

二、基本步骤思想

所有的深度学习模型过程都可以形式化如下图:

ba152a3d9bc4d0eea7b696c37bf1c3c8.png

分为四大步骤:

1、输入处理模块 (X 输入数据,变成网络能够处理的Tensor类型)

2、模型构建模块 (主要负责从输入的数据,得到预测的y^, 这就是我们经常说的前向过程)

3、定义代价函数和优化器模块 (注意,前向过程只会得到模型预测的结果,并不会自动求导和更新,是由这个模块进行处理)

4、构建训练过程 (迭代训练过程,就是上图表情包的训练迭代过程)

这几个模块分别与上图的数字标号1,2,3,4进行一一对应!

三、实例讲解

知道了上面的宏观思想之后,后面给出每个模块稍微具体一点的解释和具体一个例子,再帮助大家熟悉对应的代码!

1.数据处理

对于数据处理,最为简单的⽅式就是将数据组织成为⼀个 。但许多训练需要⽤到mini-batch,直 接组织成Tensor不便于我们操作。pytorch为我们提供了Dataset和Dataloader两个类来方便的构建。

torch.utils.data.Dataset

继承Dataset 类需要override 以下⽅法:

68a5415a4e1d5ba3353c6c681e79bb49.png

torch.utils.data.DataLoader

torch.utils.data.DataLoader(dataset, batch_size=1, shuffle=False)

DataLoader Batch。如果选择shuffle = True,每⼀个epoch 后,mini-Batch batch_size 常⻅的使⽤⽅法如下:

fa0ffd2d598687175478ee870d04bbdf.png

2. 模型构建

所有的模型都需要继承torch.nn.Module , 需要实现以下⽅法:

e26b801417a9c874df4ed83532e12b22.png

其中forward() ⽅法是前向传播的过程。在实现模型时,我们不需要考虑反向传播。

3. 定义代价函数和优化器

d3398ff4851d9ef46c8e5f80f1551fb2.png

这部分根据⾃⼰的需求去参照doc

4、构建训练过程

pytorch的训练循环⼤致如下:

e3f9ac79f6656eb62dcbe185449188d7.png

下面再用一个简单例子,来巩固一下:

88156d0459fbeb05ae8691525346e493.png
c99820d1fb9fd9e1310cba107f406ed8.png
slides来自https://www.bilibili.com/video/BV1Y7411d7Ys?from=search&seid=3765076366663992699
719234d62ad13c7ca0fec51fe2f36ecb.png
slides来自https://www.bilibili.com/video/BV1Y7411d7Ys?from=search&seid=3765076366663992699
f530f1e6c60d75b54c8379a6c78d3aa5.png
slides来自https://www.bilibili.com/video/BV1Y7411d7Ys?from=search&seid=3765076366663992699
acd8a13d8338ef9dee8266584806c130.png
slides来自https://www.bilibili.com/video/BV1Y7411d7Ys?from=search&seid=3765076366663992699

四、资源推荐

希望上面的讲解能帮助新手童鞋建立一个基本的代码逻辑轮廓,这里推荐几个我觉得很好的资源:

1、第一个是B站刘二大人的入门Pytorch视频,这是我见过入门最好的视频资源之一,强烈推荐,上面的例子slides也均来自于此,地址如下

https://www.bilibili.com/video/BV1Y7411d7Ys?p=6

2、其实入门之后,就不用看太多学习资料了,你是搞哪个方向的,推荐直接去看一下相关方向顶会论文实现,从配环境、debug看懂他的code,到调参到他论文的相近结果,功力会针对性提高很多。

希望文章对一些新手朋友有帮助~

aea089bbf917b359decdd4f13904b700.png

往期精彩回顾

适合初学者入门人工智能的路线及资料下载

机器学习及深度学习笔记等资料打印

机器学习在线手册

深度学习笔记专辑

《统计学习方法》的代码复现专辑

AI基础下载

机器学习的数学基础专辑

获取一折本站知识星球优惠券,复制链接直接打开:

https://t.zsxq.com/yFQV7am

本站qq群1003271085。

加入微信群请扫码进群:

7e0500f438074649e6e8ca7fe42b3b12.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值