解决Pytorch中的神坑:关于model.eval的问题
作者:汐梦聆海 发布时间:2021-09-17 17:16:55
标签:Pytorch,model.eval
有时候使用Pytorch训练完模型,在测试数据上面得到的结果令人大跌眼镜。
这个时候需要检查一下定义的Model类中有没有 BN 或 Dropout 层,如果有任何一个存在
那么在测试之前需要加入一行代码:
#model是实例化的模型对象
model = model.eval()
表示将模型转变为evaluation(测试)模式,这样就可以排除BN和Dropout对测试的干扰。
因为BN和Dropout在训练和测试时是不同的:
对于BN,训练时通常采用mini-batch,所以每一批中的mean和std大致是相同的;而测试阶段往往是单个图像的输入,不存在mini-batch的概念。所以将model改为eval模式后,BN的参数固定,并采用之前训练好的全局的mean和std;
对于Dropout,训练阶段,隐含层神经元先乘概率P,再进行激活;而测试阶段,神经元先激活,每个隐含层神经元的输出再乘概率P。
如下图所示:
补充:pytorch中model.eval之后是否还需要model.train的问题
答案是:需要的
正确的写法是
for循环之后再开启train,
循环之后的评估model.eval之后就会再次回到model.train
来源:https://blog.csdn.net/jackzhang11/article/details/105770223


猜你喜欢
- Git跟其他版本控制系统一样,可以打标签(tag)标记一个版本号。发布一个版本时,我们通常先在版本库中打一个标签,这样,就唯一确定了打标签时
- SQL*Plus system/manager 2、显示当前连接用户 SQL> show user 3、查看系统拥有哪些用户 SQL&
- 由于Django没有象rails一样指定项目的目录结构规范,很多人都对django项目的目录结构要如何组织而感到困惑。为此我又新创建了一个开
- 本文实例为大家分享了如何利用Python对数据库的增删改查进行简单的封装,供大家参考,具体内容如下1.insert &
- 很多应用多需要处理文件,而处理文件有一个固定的模式:打开文件,读入一些数据,处理这些数据,打印到屏幕上或写入另一个文件。那么,如果我们想修改
- Python:1. print()函数:打印字符串2. raw_input()函数:从用户键盘捕获字符3. len()函数:计算字符长度4.
- 本文介绍了webpack对样式的处理,分享给大家,具体如下:我们可以在js中引入样式文件require('myStyle.css
- 一下文件执行将产生乱码,切.log文件显示问好,打不开import loggingdef shop_logging(name):  
- 1.计算变量缺失率df=pd.read_csv('titanic_train.csv')def missing_cal(df
- 项目运行环境阿里云(单核CPU, 1G内存, Ubuntu 14.04 x64 带宽1Mbps), 具体购买和ssh连接阿里云本文不做描述。
- 遇到一个很实际的问题:由于不想增加目录的深度,减少磁盘寻址的时间,需要减少一些目录层级。大家都知道建立文件夹是为了让文件管理更加的方便,现在
- 首先我们有一个接口可以获取动态的vkeyhttps://vv.video.qq.com/getinfo?otype=json&app
- 序言是我太久没发了吗?昨天没人看,那么今天来点特别的~不仅把好看的视频全部pa下来,咱们还要实现自动评论、点赞、关注三连~宝,你也可以顺手给
- 我们在压力测试过程会收集到很多log,怎样快速从中找到有用信息呢?让python脚本帮我们做这部分工作吧!废话不说,上代码环境:win10
- 前言尝试用python语言写脚本是好的开始,证明我们有了自动化的思想,这对优秀的程序开发人员是很重要的,电子计算机本来就是要减少重复工作的。
- 一、BeautifulSoup4 基础知识补充BeautifulSoup4 是一款 python 解析库,主要用于解析 HTML
- 常用功能 mean(data)mean(data)用于求给定序列或者迭代器的算术平均数。import statisticsexample_l
- 一、节点的定义dom节点树图中可见节点HTML文档中的每个成分都是一个节点:整个文档是一个文档节点每个HTML标签是一个元素节点包含在HTM
- 当然还是要使用FileSystemObject(FSO)来创建了。不过在创建前,要先检查以下目录是否存在,如果存在,就不用创建了: 
- 什么是网络?网络是由节点和连线构成,表示诸多对象及其相互联系。在数学上,网络是一种图,一般认为专指加权图。网络除了数学定义外,还有具体的物理