目录

  • 一、模型保存与加载
  • 二、完整的模型训练过程
  • 1、导入准备数据集
  • 2、加载数据集
  • 3、搭建神经网络
  • 4、损失函数
  • 5、优化器
  • 6、训练设置
  • 7、测试集测试
  • 8、Tensorbord测试
  • 8、正确率acc
  • 三、利用GPU训练


一、模型保存与加载

方式二把网络模型的状态参数保存成字典形式,而方式一保存的是模型的结构 + 模型参数

如果是大模型,方式二会比方式一占用更少的空间。

保存模型

pytorch 将数据放到指定GPU pytorch导入本地数据集_pytorch 将数据放到指定GPU


pytorch 将数据放到指定GPU pytorch导入本地数据集_pytorch_02

加载模型

pytorch 将数据放到指定GPU pytorch导入本地数据集_笔记_03

二、完整的模型训练过程

1、导入准备数据集

这里才用和之前一样的CIFAR10数据集做本次模型训练测试

调用torchvision.datasets自带的CIFAR10数据集进行下载,通过transforms转化为tensor类型,多余的不多说了,都是上一张的内容复习。

pytorch 将数据放到指定GPU pytorch导入本地数据集_数据集_04

.format是python中常见的字符串格式化写法,会经常使用

pytorch 将数据放到指定GPU pytorch导入本地数据集_数据集_05

2、加载数据集

pytorch 将数据放到指定GPU pytorch导入本地数据集_笔记_06

3、搭建神经网络

这里以一个CIFAR10 model的结构为例:搭建一个神经网络

pytorch 将数据放到指定GPU pytorch导入本地数据集_pytorch_07


模型初始化:我们一般都会把设计使用网络模型单独放在一个文件中

pytorch 将数据放到指定GPU pytorch导入本地数据集_数据集_08

pytorch 将数据放到指定GPU pytorch导入本地数据集_笔记_09


我们在完成一个网络模型时,也会在下面进行网络模型测试,通常会这样写:

这样可以直接点运行

pytorch 将数据放到指定GPU pytorch导入本地数据集_pytorch_10

返回64行数据 + 10个数据

pytorch 将数据放到指定GPU pytorch导入本地数据集_笔记_11

最后在我们的训练文件中,引用模型:

pytorch 将数据放到指定GPU pytorch导入本地数据集_pytorch 将数据放到指定GPU_12

4、损失函数

pytorch 将数据放到指定GPU pytorch导入本地数据集_pytorch_13

5、优化器

采用随机梯度下降SGD

pytorch 将数据放到指定GPU pytorch导入本地数据集_学习_14


pytorch 将数据放到指定GPU pytorch导入本地数据集_数据集_15

6、训练设置

pytorch 将数据放到指定GPU pytorch导入本地数据集_pytorch_16


pytorch 将数据放到指定GPU pytorch导入本地数据集_pytorch 将数据放到指定GPU_17

7、测试集测试

pytorch 将数据放到指定GPU pytorch导入本地数据集_学习_18

8、Tensorbord测试

将每轮训练的损失值,与每轮测试的损失值以tensor 图像形式展示

pytorch 将数据放到指定GPU pytorch导入本地数据集_pytorch 将数据放到指定GPU_19


pytorch 将数据放到指定GPU pytorch导入本地数据集_数据集_20

8、正确率acc

主要存在于分类问题中:

我们假设两个输入,同样返回两个输出对应的各标签概率

但我们需要把概率转化成对应的最大标签序号:如下图两个输出为1标签概率都最大,所有通过Argmax函数输出对应的两个1
标签

而实际输入的正确标签为0 1,所有我们可以计算正确率

pytorch 将数据放到指定GPU pytorch导入本地数据集_数据集_21


看一下argmax函数的使用:返回最大概率对应的下标(分类中就是标签值)

pytorch 将数据放到指定GPU pytorch导入本地数据集_学习_22


pytorch 将数据放到指定GPU pytorch导入本地数据集_笔记_23


在测试集上计算正确率

pytorch 将数据放到指定GPU pytorch导入本地数据集_学习_24


pytorch 将数据放到指定GPU pytorch导入本地数据集_笔记_25

三、利用GPU训练

**第一种:**在网络模型 数据 损失函数边上添加.cuda()调用gpu运算

pytorch 将数据放到指定GPU pytorch导入本地数据集_数据集_26


pytorch 将数据放到指定GPU pytorch导入本地数据集_学习_27

pytorch 将数据放到指定GPU pytorch导入本地数据集_笔记_28


pytorch 将数据放到指定GPU pytorch导入本地数据集_笔记_29

pytorch 将数据放到指定GPU pytorch导入本地数据集_学习_30

第二种:利用to(device)

pytorch 将数据放到指定GPU pytorch导入本地数据集_数据集_31

pytorch 将数据放到指定GPU pytorch导入本地数据集_pytorch_32


pytorch 将数据放到指定GPU pytorch导入本地数据集_学习_33


pytorch 将数据放到指定GPU pytorch导入本地数据集_笔记_34


pytorch 将数据放到指定GPU pytorch导入本地数据集_pytorch_35


pytorch 将数据放到指定GPU pytorch导入本地数据集_笔记_36