model.train()、model.eval()什么时候用

article/2023/6/4 14:37:11

model.train()

在使用 pytorch 构建神经网络的时候,训练过程中会在程序上方添加一句model.train(),作用是 启用 batch normalizationdropout

如果模型中有BN层(Batch Normalization)Dropout ,需要在训练时添加 model.train()。

model.train() 是保证 BN 层能够用到 每一批数据 的均值和方差。对于 Dropoutmodel.train() 是 随机取一部分网络连接来训练更新参数。

model.eval()

model.eval() 作用等同于 self.train(False)
简而言之,就是评估模式。而非训练模式。
在评估模式下,batchNorm层,dropout层等用于优化训练而添加的网络层会被关闭,从而使得评估时不会发生偏移。

在对模型进行评估时,应该配合使用with torch.no_grad() 与 model.eval()

    loop:model.train()    # 切换至训练模式train……model.eval()with torch.no_grad():Evaluationend loop

总结:

如果模型中有 BN 层(Batch Normalization)和 Dropout,需要在训练时添加 model.train(),在测试时添加 model.eval()。

其中 model.train() 是保证 BN 层用每一批数据的均值和方差,而 model.eval() 是保证 BN 用全部训练数据的均值和方差;

而对于 Dropout,model.train() 是随机取一部分网络连接来训练更新参数,而 model.eval() 是利用到了所有网络连接

http://www.ngui.cc/article/show-1007709.html

相关文章

Mac M1/Intel 芯片 Nginx+PHP开发环境配置——初探(一)

最近因为新买Mac M系列芯片笔记本,一直也没搭建过PHP的开发环境,花了一点时间特意在本机做了一次环境搭建测试具体如下。开始之前,需要安装一些工具来完成配置,工具列表如下:XcodeVS CodeHomebrewOpenSSL & wgetMySQLPostgres…

Spring《二》bean的实例化与生命周期

🍎道阻且长,行则将至。🍓 目录一、bean实例化🍍1.构造方法 ***2.静态工厂 *使用工厂创建对象实例化bean3.实例工厂 ***使用示例工厂创建对象实例工厂实例化beanFactoryBean二、生命周期🍑1.生命周期设置2.在main方法使…

Vector - CAPL - 实时时间on *

前面有简单的提到过on message的用法,但是对于整个on *家族来说,on message仅仅这是其中之一,为了能够的了解、学习这个家族的成员,因此做了专门的整理的,将囊括CALP用常用的所有的on *家族成员,并对其进行…

【JavaEE】Java设计模式-单例模式(饿汉式与懒汉式)

目录 1.设计模式是啥? 2.单例模式 2.1什么是单例模式 2.2饿汉模式 2.3懒汉模式 3.懒汉模式与饿汉模式的区别 1.设计模式是啥? 设计模式是前人经过总结,通过对不同应用场景应该运用何种方法解决问题的模式。我们可以将它看成NBA中的…

English Learning - L2-10 英音地道语音语调 鼻辅音 [m] [n] [ŋ] 舌边音 [l] [r] 2023.03.23 周四

English Learning - L2-10 英音地道语音语调 鼻辅音 [m] [n] [ŋ] 舌边音 [l] [r] 2023.03.23 周四课前准备活动和回顾鼻辅音鼻辅音 [m]鼻辅音 [n]鼻辅音 [ŋ]鼻辅音对比鼻辅音发音技巧对应单词对应的句子舌边音舌边音 [l]发音技巧对应单词[l] 和 [n] 的区分舌边音 [r]发音技巧…

基于51单片机的自动打铃打鸣作息报时系统AT89C51数码管三极管时钟电路

wx供重浩:创享日记 对话框发送:单片机打铃 获取完整无水印论文报告说明(含源码程序、电路原理图和仿真图) 本次设计中的LED数码管电子时钟电路采用24小时制记时方式,本次设计采用AT89C51单片机的扩展芯片和6个PNP三极管做驱动&…

Matlab如何计算功率谱熵?|信息熵之功率谱熵

信息熵 熵的概念最初在热力学中提出,熵的本质被解释为即熵的本质是一个系统“内在的混乱程度”。熵的概念在不同的学科中引申出更为具体的概念,在信息论中信息熵的具体定义为: H(X)p(xi)∑i1n1p(xi)−p(xi)∑i1np(xi)H(X)p(x_i)\sum_{i1}^n \…

扩散模型的数学理解

前置知识:标准高斯分布的乘法:若z~N(0, I),则 n*z~N(0, n^2 * I)。因为期望为0,乘以n后还是为0,但方差为1,乘以n后还要加上平方,所以说是n^2 * I。概率公式中的逗号、分号、竖线:分号…

Vue中的常用指令!!

Vue 中的指令是 Vue 的核心功能之一&#xff0c;用于在模板中添加特殊的标签&#xff0c;使得 DOM 元素和 Vue 实例的数据绑定在一起&#xff0c;实现双向数据绑定和动态更新。下面是常用的 Vue 指令。 v-if 指令&#xff1a;根据条件动态渲染元素 <!-- 根据 show 布尔值的…

【算法基础】欧拉函数

一、欧拉函数 1. 公式法求欧拉函数 2. 筛法求欧拉函数 二、案例分析1 (公式法求欧拉函数) (一)Question 1. 问题描述 2. Input 第一行包含整数 n。接下来 n行,每行包含一个正整数 ai。(1 ≤ n ≤ 100, 1 ≤ ai ≤ 2109) 3. Output 输出共 n 行,每行输出一个正整数…