土堆学习笔记——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在头文件那里引进来

相关推荐
风曦Kisaki4 小时前
Kubernetes(K8s)笔记Day06: 持久化存储(emptyDir,hostPath,NFS),PV 和 PVC,StorageClass存储类
linux·运维·笔记·云原生·容器·kubernetes
咸鱼翻身小阿橙7 小时前
现在这个四通道出现的问题
学习
wgego9 小时前
基础的反序列化一些总结(php和java)
java·开发语言·笔记
云贝教育-郑老师9 小时前
OceanBase 是如何搞定海量数据分片(Sharding)的?
学习·oceanbase·dba
编程圈子9 小时前
电机驱动开发学习23. 保护体系与故障状态机
驱动开发·学习
别动我齐刘海11 小时前
Day6 unitree_G1人形机器人GMR—— MotionInput
c语言·c++·人工智能·学习·机器学习·机器人·github
神秘的MT11 小时前
C# WinForm Socket 服务器 + 串口转发
服务器·网络·学习·c#
依然范特东12 小时前
强化学习笔记6--IS、PPO、TD、DQN、Actor-Critic
笔记·算法
zzzll111112 小时前
0基础入门大模型:一份清晰的学习路线图
人工智能·学习·chatgpt
正经人_x13 小时前
学习日记48:DenseCLIP
学习