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()进行调用
注:两种方式适用对象相同
原文地址:https://blog.csdn.net/m0_58285219/article/details/142340307
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!