一定要看,推荐给大家的Pytorch编写代码基本步骤思想(附资料),不看血亏

一、前言

文末有福利!

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

二、基本步骤思想

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

分为四大步骤:

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

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

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

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

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

三、实例讲解

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

扫描二维码关注公众号,回复: 13232062 查看本文章

1.数据处理

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

torch.utils.data.Dataset

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

torch.utils.data.DataLoader

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

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

2. 模型构建

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

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

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

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

4、构建训练过程

pytorch的训练循环⼤致如下:

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

slides来自https://www.bilibili.com/video/BV1Y7411d7Ys?from=search&seid=3765076366663992699

slides来自https://www.bilibili.com/video/BV1Y7411d7Ys?from=search&seid=3765076366663992699

slides来自https://www.bilibili.com/video/BV1Y7411d7Ys?from=search&seid=3765076366663992699

slides来自https://www.bilibili.com/video/BV1Y7411d7Ys?from=search&seid=3765076366663992699

四、粉丝福利

希望上面的讲解能帮助新手童鞋建立一个基本的代码逻辑轮廓!

迪迦给大家准备的250G人工智能学习资料礼包内含:两大Pytorch、TensorFlow实战框架视频、图像识别、OpenCV、计算机视觉、深度学习与神经网络等等等视频、代码、PPT以及深度学习书籍

只需要你点个关注,然后扫码添加助手小姐姐VX即可无套路领取!

  扫码添加即可

猜你喜欢

转载自blog.csdn.net/Java_chain/article/details/121065172
今日推荐