土堆学习笔记——P29完整的模型训练套路(三)

一些细节:

在训练前 有一个tudui.train()的作用:

如果网络里有dropout/batchnorm等层,就需要用到tudui.train(),也就是没有这些层的话,tudui.train()没用调用不调用都行
在测试前 有一个tudui.eval()的作用:

同上

整个训练逻辑:

  1. 准备数据
  2. dataloader加载数据集
  3. 创建网络模型(看注释a
  4. 定义损失函数、优化器
  5. 设置训练网络的一些参数,如训练的次数、测试的次数、训练的轮数等
  6. (可选)添加tensorboard
  7. 开始第一轮训练,每轮训练包括 { 从dataloader取数据for data in train_dataloader,优化器优化模型,输出提示信息等 }
  8. 测试,最好要有with torch.no_grad(): { 可以自己定义一些指标,还有损失 }
  9. 展示网络在数据集上的效果,保存模型为.pth或者.pt等 { 官方推荐的保存方法为,torch.save(tudui.state_dict(), "tudui_{}.pth".format(i)),这样可以以字典形式保存模型的参数,不保存别的,少占内存 }

注释a: 创建网络模型为tudui = Tudui(),至于class Tudui,可以在另一个.py文件中,之后使用from在头文件那里引进来

相关推荐
strongwyy1 小时前
9、nRF52xx蓝牙学习(pca10056.h学习)
单片机·嵌入式硬件·学习
每天题库1 小时前
2025 年江苏保安员职业资格考试经验分享
学习·安全·考试·题库·考证
Starry_hello world4 小时前
Linux 的准备工作
linux·笔记·有问必答
viperrrrrrrrrr76 小时前
大数据学习(105)-Hbase
大数据·学习·hbase
IT _oA6 小时前
Active Directory 域服务
运维·服务器·网络·windows·笔记
袖清暮雨7 小时前
Python刷题笔记
笔记·python·算法
六bring个六7 小时前
QT上位机笔记
开发语言·笔记·qt
熬夜造bug7 小时前
LeetCode Hot100 刷题笔记(1)—— 哈希、双指针、滑动窗口
笔记·leetcode·hot100
行思理8 小时前
go语言应该如何学习
开发语言·学习·golang
oceanweave9 小时前
【k8s学习之CSI】理解 LVM 存储概念和相关操作
学习·容器·kubernetes