2024/9/18 模型训练流程、利用GPU训练

以CIFAR10数据集为例:

代码在train.py 网络模型在module.py

一、模型训练流程

1.获取数据集

可用len获取数据长度

2.使用DataLoader从数据集中获取数据

3.构建网络模型

一般网络模型会单独建立一个模块进行存放,若要使用,在使用模块进行引用

if __name__ == '__main__':下的代码多用于当前模块的测试

4.创建模型对象,损失函数,优化器

5.创建一些模型参数

6.训练过程

小知识:对于item函数

7.测试步骤

8.后续还可加入tensorboard可视化,将每一轮的模型进行保存

9.还可计算现有模型对测试数据的正确率

每个数据经过模型转化后都是一个长度为10的一维数组,数组由不同的数值组成,一行中数值最大的那个数的下标索引就是其所属类别,可用argmax获得一行数据中最大值的下标索引

由于batch为64,所以每次模型出来的批数据是个维度为[64,10]的二维数组out

out.argmax(1) 表示对64行,每行求最大值下标索引,会生成这批数据用模型进行分类的结果,是一个长度为64的一维数组。

将模型所预测的结果与数据本身类别进行比较,求出预测正确率

二、利用GPU训练

方式一:对象.cuda()

代码见 train_gpu.py

CUDA 是 NVIDIA 发明的一种并行计算平台和编程模型。它通过利用图形处理器 (GPU) 的处理能力,可大幅提升计算性能。

cuda应用于:

方式二:.to(device)

这种方式首先需要定义device:

对于显卡上只有单个GPU,cuda == cuda:0

若有多个可指定

常用写法:

对象通过.to()进行调用

注:两种方式适用对象相同

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值