Pytorch evaluation每次运行结果不同的解决

yipeiwu_com7年前Python基础

这两天跑测试图时,发现用同样的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每次运行结果不同的解决就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python的多维空数组赋值方法

Python里面的list、tuple默认都是一维的。 创建二维数组或者多维数组也是比较简单。 可以这样: list1 = [1,2,] list1.append([3,4,])...

Python 16进制与中文相互转换的实现方法

Python中编码问题:u'\xe6\x97\xa0\xe5\x90\x8d' 类型的转为utf-8的解决办法 相信小伙伴们遇到过类似这样的问题,python2中各种头疼的转码,类似u'...

Python基于辗转相除法求解最大公约数的方法示例

Python基于辗转相除法求解最大公约数的方法示例

本文实例讲述了Python基于辗转相除法求解最大公约数的方法。分享给大家供大家参考,具体如下: 之前总结过一次高德纳TAOCP中的最大公约数求解,其实课后题中的算法修改要求实现的是辗转相...

Python运算符重载用法实例

本文实例讲述了Python运算符重载用法。分享给大家供大家参考。具体分析如下: python中,我们在定义类的时候,可以通过实现一些函数来实现重载运算符。 例子如下: # -*- c...

10招!看骨灰级Pythoner玩转Python的方法

10招!看骨灰级Pythoner玩转Python的方法

pandas是基于numpy构建的,使数据分析工作变得更快更简单的高级数据结构和操作工具。本文为大家带来10个玩转Python的小技巧,学会了分分钟通关变大神! 1. read_cs...