Pytorch evaluation每次运行结果不同的解决
2020-03-11 17:50
2181 查看
这两天跑测试图时,发现用同样的model,同样的测试图,每次运行结果不同;
经过漫长的debug发现,在net architure中有dropout,如下(4):
(conv_block): Sequential( (0): ReflectionPad2d((1, 1, 1, 1)) (1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1)) (2): InstanceNorm2d(256, eps=1e-05, momentum=0.1, affine=False) (3): ReLU(inplace) (4): Dropout(p=0.5) (5): ReflectionPad2d((1, 1, 1, 1)) (6): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1)) (7): InstanceNorm2d(256, eps=1e-05, momentum=0.1, affine=False) )
在跑evaluation的时候,因为dropout的存在,每次运行会随机丢一些中间结果,从而导致最终结果有差异;
可以在evaluation过程中,使用eval() class强制丢掉random的内容,code如下:
self.fake_B = self.netG.eval().forward(self.real_A)
以上这篇Pytorch evaluation每次运行结果不同的解决就是小编分享给大家的全部内容了,希望能给大家一个参考
您可能感兴趣的文章:
相关文章推荐
- 解决srand()与rand()每次运行结果一样的问题
- VS下运行和直接双击exe运行结果不同的解决方法
- android平台下的aes加密和java平台下的运行结果不同的解决办法
- android平台下的aes加密和java平台下的运行结果不同的解决办法
- android平台下的aes加密和java平台下的运行结果不同的解决办法
- WEEK8晚第一题(升级版哦,每次运行都可以出现不同学号哦,耶!用srand(time(0))解决,不被rand()局限)
- eclipse运行C++控制台不输出结果的解决办法
- Appium做自动化时,每次运行都重复安装Appium的输入法解决方法
- 【目标检测】关于如何在 PyTorch1.x + Cuda10 + Ubuntu18.0 运行 CenterNet 源码
- Unix网络编程卷一: 从服务器获取时间信息(三)-daytimetcpcli2客户端每次执行结果不同
- 利用pytorch分析不同的optimizer
- Pytorch GPU显存充足却显示out of memory的解决方式
- 【原创】packetbeat 之“协议数据包分析每次输出结果均不同”问题
- 解决:eclipse cdt 编写的c/c++程序的运行结果不能输出到console
- AES加密算法在linux下相同输入每次加密结果都不同的问题
- 解析向集合中放相同名称的对象,但是每次对象的值不同时候,遍历集合时候的结果
- gcc编译静态库到自己的程序 解决在不同linux下因libc版本问题而不能运行
- 每次运行产生不同随机数
- c++使用动态规划dp(自底向上)重构解决钢条切割输出最大收益和切割方案及运行实例结果
- cuDNN兼容性问题造成的caffe/mnist,py-faster-rcnn/demo运行结果错误