目录
- 一、模型保存与加载
- 二、完整的模型训练过程
- 1、导入准备数据集
- 2、加载数据集
- 3、搭建神经网络
- 4、损失函数
- 5、优化器
- 6、训练设置
- 7、测试集测试
- 8、Tensorbord测试
- 8、正确率acc
- 三、利用GPU训练
一、模型保存与加载
方式二把网络模型的状态参数保存成字典形式,而方式一保存的是模型的结构 + 模型参数
如果是大模型,方式二会比方式一占用更少的空间。
保存模型
加载模型
二、完整的模型训练过程
1、导入准备数据集
这里才用和之前一样的CIFAR10数据集做本次模型训练测试
调用torchvision.datasets自带的CIFAR10数据集进行下载,通过transforms转化为tensor类型,多余的不多说了,都是上一张的内容复习。
.format是python中常见的字符串格式化写法,会经常使用
2、加载数据集
3、搭建神经网络
这里以一个CIFAR10 model的结构为例:搭建一个神经网络
模型初始化:我们一般都会把设计使用网络模型单独放在一个文件中
我们在完成一个网络模型时,也会在下面进行网络模型测试,通常会这样写:
这样可以直接点运行
返回64行数据 + 10个数据
最后在我们的训练文件中,引用模型:
4、损失函数
5、优化器
采用随机梯度下降SGD
6、训练设置
7、测试集测试
8、Tensorbord测试
将每轮训练的损失值,与每轮测试的损失值以tensor 图像形式展示
8、正确率acc
主要存在于分类问题中:
我们假设两个输入,同样返回两个输出对应的各标签概率
但我们需要把概率转化成对应的最大标签序号:如下图两个输出为1标签概率都最大,所有通过Argmax函数输出对应的两个1
标签
而实际输入的正确标签为0 1,所有我们可以计算正确率
看一下argmax函数的使用:返回最大概率对应的下标(分类中就是标签值)
在测试集上计算正确率
三、利用GPU训练
**第一种:**在网络模型 数据 损失函数边上添加.cuda()调用gpu运算
第二种:利用to(device)