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

yipeiwu_com6年前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 requests 的put, post 请求参数的问题

浅谈python requests 的put, post 请求参数的问题

post, put请求的参数有两种形式 一种是把参数拼接在url中 对应postman 第二种是把参数放在body中 对应postman 在Python requests 库中 一般...

Anaconda多环境多版本python配置操作方法

conda测试指南 在开始这个conda测试之前,你应该已经下载并安装好了Anaconda或者Miniconda 注意:在安装之后,你应该关闭并重新打开windows命令行。 一、Con...

python 获取网页编码方式实现代码

python 获取网页编码方式实现代码 <span style="font-family: Arial, Helvetica, sans-serif; background-c...

python 匹配url中是否存在IP地址的方法

因为需要检测一个一个链接中是否包含了IP地址,在这里需要使用到正则表达式 ,python完美的支持了正则表达式,在这里使用re模块来完成,对正则表达式并不是很熟练,每次都是需要用的时候现...

详解Python_shutil模块

import shutil 高级的文件,文件夹,压缩包的处理模块,也主要用于文件的拷贝 shutil.copyfileobj(fsrc,fdst[,length]):  将文件的内容拷...