这篇文章主要介绍PyTorch中dropout设置训练和测试模式的实现示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!看代码吧~class Net(nn.Module):…model =&nbs
这篇文章主要介绍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()
以上是“PyTorch中dropout设置训练和测试模式的实现示例”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!
--结束END--
本文标题: PyTorch中dropout设置训练和测试模式的实现示例
本文链接: https://www.lsjlt.com/news/278274.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0