iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >PyTorch中dropout设置训练和测试模式的实现示例
  • 796
分享到

PyTorch中dropout设置训练和测试模式的实现示例

2023-06-15 06:06:25 796人浏览 泡泡鱼
摘要

这篇文章主要介绍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文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作