PyTorch dropout设置训练和测试模式的实现
看代码吧~
class Net(nn.Module):
…
model = Net()
…
model.train() # 把module设成训练模式,对Dropout和BatchNorm有影响
model.eval() # 把module设置为预测模式,对Dropout和BatchNorm模块有影响
补充:Pytorch遇到的坑——训练模式和测试模式切换
由于训练的时候Dropout和BN层起作用,每个batch BN层的参数不一样,dropout在训练时随机失效点具有随机性,所以训练和测试要区分开来。
使用时切记要根据实际情况切换:
model.train()
model.eval()
补充:Pytorch在测试与训练过程中的验证结果不一致问题
引言
今天在使用Pytorch导入此前保存的模型进行测试,在过程中发现输出的结果与验证结果差距甚大,经过排查后发现是forward与eval()顺序问题。
现象
此前的错误代码是
input_cpu = torch.ones((1, 2, 160, 160))
target_cpu =torch.ones((1, 2, 160, 160))
target_gpu, input_gpu = target_cpu.cuda(), input_cpu.cuda()
model.set_input_2(input_gpu, target_gpu)
model.eval()
model.forward()
应该改为
input_cpu = torch.ones((1, 2, 160, 160))
target_cpu =torch.ones((1, 2, 160, 160))
target_gpu, input_gpu = target_cpu.cuda(), input_cpu.cuda()
model.set_input_2(input_gpu, target_gpu)
# 先forward再eval
model.forward()
model.eval()
当时有个疑虑,为什么要在forward后面再加eval(),查了下相关资料,主要是在BN层以及Dropout的问题。当使用eval()时,模型会自动固定BN层以及Dropout,选取训练好的值,否则则会取平均,可能导致生成的图片颜色失真。
(资源库 www.zyku.net)
原文链接:https://guotong1988.blog.csdn.net/article/details/78724624
上一篇:pytorch 运行一段时间后出现GPU OOM的问题
栏 目:Python教程
下一篇:利用python Pandas实现批量拆分Excel与合并Excel
本文标题:PyTorch dropout设置训练和测试模式的实现
本文地址:https://www.zyku.net/python/9882.html
您可能感兴趣的文章
- 02-11pytorch交叉熵损失函数的weight参数的使用
- 02-11pytorch 如何把图像数据集进行划分成train,test和val
- 02-11pytorch 6 batch_train 批训练操作
- 02-11pytorch固定BN层参数的操作
- 02-11pytorch 如何实现HWC转CHW
- 02-10pytorch 使用半精度模型部署的操作
- 02-10pytorch 中nn.Dropout的使用说明
- 02-10浅谈pytorch中的dropout的概率p
- 02-10基于PyTorch实现一个简单的CNN图像分类器
- 02-10pytorch中.to(device) 和.cuda()的区别说明
- 02-10Pytorch 中net.train 和 net.eval的使用说明
- 02-10Pytorch 如何训练网络时调整学习率
- 02-10pytorch model.cuda()花费时间很长的解决
- 02-10Pytorch GPU内存占用很高,但是利用率很低如何解决
- 02-09PyTorch 如何自动计算梯度
- 02-09pytorch 实现计算 kl散度 F.kl_div()
- 02-09pytorch中LN(LayerNorm)及Relu和其变相的输出操作
- 02-09pytorch 实现多个Dataloader同时训练
- 02-09解决pytorch trainloader遇到的多进程问题
- 02-09Pytorch使用shuffle打乱数据的操作
最近更新
阅读排行
猜你喜欢
- 07-31帝国CMS怎么调用自定义列表名称
- 05-09PHP实现获取第一个中文首字母并进行排
- 07-15帝国cms修改默认分页列表样式方法
- 12-28苹果手机测距仪怎么使用
- 03-16linux下批量删除utf8 bom的实现方法
- 01-11看看3D卫星街景-看看3D卫星街景应用软
- 12-07小米平板5拿起亮屏功能在哪
- 02-22DedeCMS首页幻灯片不显示的解决方法
- 01-19村雨动漫-村雨动漫应用软件功能介绍
- 09-13苹果语音控制刷视频方法介绍