pytorch中model.eval的作用

2023-11-12

pytorch中model.eval()的作用

问题描述:

torch.onnx.export()导出onnx模型后,利用onnxruntime加载onnx模型后,其输出结果与原始.pth模型的输出结果之间存在很大的差距;通过拆分网络结构,定位到nn.BatchNorm2d()层导致;

Batch Normalization和Dropout

  • Batch Normalization
    其作用对网络中间的每层进行归一化处理,并且使用变换重构(Batch Normalization Transform)保证每层提取的特征分布不会被破坏。训练时是针对每个mini-batch的,但是测试是针对单张图片的,即不存在batch的概念。由于网络训练完成后参数是固定的,每个batch的均值和方差是不变的,因此直接结算所有batch的均值和方差。所有Batch Normalization的训练和测试时的操作不同。
  • Dropout
    其作用克服Overfitting,在每个训练批次中,通过忽略一半的特征检测器,可以明显的减少过拟合现象。

model.train()和model.eval()

  • train()
    启用 BatchNormalization 和 Dropout
  • eval()
    不启用 BatchNormalization 和 Dropout,保证BN和dropout不发生变化,pytorch框架会自动把BN和Dropout固定住,不会取平均,而是用训练好的值,不然的话,一旦test的batch_size过小,很容易就会被BN层影响结果。
问题解决办法

在利用原始.pth模型进行前向推理之前,一定要先进行model.eval()操作,不启用 BatchNormalization 和 Dropout。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pytorch中model.eval的作用 的相关文章

随机推荐

  • 【算法学习笔记】20:朴素Dijkstra与堆优化Dijkstra(无负权边单源点最短路)

    Dijkstra算法用于在所有边权都非负的图上 求单源点最短路 设 n n n是图上结点的数量 m m m是边的数量 则朴素Dijkstra算法的时间复杂度是 O
  • Oracle 定时任务详解(dbms_job)

    文章目录 1 概述 2 dbms job 2 1 提交 2 2 暂停 2 3 修改 2 4 运行 2 5 删除 1 概述 1 数据来源包 dbms job Oracle 10g 前常用 2 目前已被 dbms scheduler 所取代 且
  • 百亿补贴通用H5导航栏方案

    背景 在移动端页面中 由于屏幕空间有限 导航条扮演着非常重要的角色 提供了快速导航到不同页面或功能的方式 用户也通常会在导航条中寻找他们感兴趣的内容 因此导航条的曝光率较高 在这样的背景下 提供一个动态灵活的导航条 为产品赋能 变得尤其重要
  • unity 获取小车速度及前进或者后退

    项目需要获得小车移动的数据 用来驱动轮子正传或者反转 所以得想法获取小车的移动量 首先想到的是 使用Unity的API Rigidbody velocity 但是实际操作起来却不是那么回事 貌似Rigidbody velocity只能响应物
  • 黑苹果必备OC配置工具OpenCore Configurator 2.12.0.0中文版

    OpenCore Configurator 中文版是非常优秀的一款黑苹果OC配置工具 可以通过提供更加通用和模块化的系统来解决Clover带来的限制和问题 拦截内核加载以插入高级的rootkit 而该rootkit旨在替代Clover Op
  • Leetcode 78. 子集(回溯法)

    子集 回溯法 class Solution List
  • 内网渗透篇

    域信息搜集命令 1 查询当前环境 whoami ipconfig all 2 查询当前域用户 net user domain 3 查询域控 net time 4 查询域工作组 net group domain 5 查询域管理用户 net g
  • Java学习笔记

    public char charAt int index 根据索引返回字符 public int length 返回此字符的长度 数组的长度 数组名 length 字符串的长度 字符串对象 length StringBuilder Stri
  • 黑马程序员-微信小程序-Day3笔记(P38-P59)

  • CMD命令进入某个目录

    1 开始 gt 运行 gt CMD 2 进入某个磁盘 直接盘符代号 如D 不用CD 命令切换 3 进入除根录以下的文件夹 cd 文件夹路径 例如我要进入 E Program Files PHP 就 输入 E 回车 注 不 能在一打开CMD的
  • 折半查找不成功的平均查找长度怎么算_算法基础:常用的查找算法知识笔记

    1 查找表和查找效率的概念查找表是指由同一类型的数据元素构成的集合 分为静态查找表和动态查找表 1 1 静态查找表1 查询某个特定元素是否在查找表的集合当中2 查询某个特定元素的各种属性 1 2 动态查找表1 在查找表中插入一个数据元素2
  • 如何在命令行中使用 ftp 命令上传和下载文件

    转摘 https linux cn article 6746 1 html 本文中 介绍在 Linux shell 中如何使用 ftp 命令 包括如何连接 FTP 服务器 上传或下载文件以及创建文件夹 尽管现在有许多不错的 FTP 桌面应用
  • 音视频同步-时间戳

    媒体内容在播放时 最令人头痛的就是音视频不同步 从技术上来说 解决音视频同步问题的最佳方案就是时间戳 首先选择一个参考时钟 要求参考时钟上的时间是线性递增的 生成数据流时依据参考时钟上的时间给每个数据块都打上时间戳 一般包括开始时间和结束时
  • vuejs+element UI table的常见的属性及事件

    一 table组件的方法 事件 查看官网 二 常用的事件 属性 一 属性 1 多选框 type selection 需要实现勾选的功能 在
  • BearPi-HM Micro 开发环境搭建

    1 资料下载 Ubuntu20 04 大小8G 下载地址 百度云 Ubuntu18 04 大小4 8G 下载地址 百度云 STM32CubeProgrammer JRE 虚拟机VMware Workstation MobaXterm工具 R
  • 华大(小华)HC32L130工程创建

    一 我们先来认识一下华大驱动库包下的文件功能 注意 华大提供的包是没有M0 内核标准文件的 HC32L130 是M0 ST提供的驱动库包是有的 就是CORE文件夹 第一步 创建文件夹目录 具体这个创建文件夹目录的含义可以看STM32工程创建
  • 梦幻可以在2个服务器无限转吗,如过能跨大区转服务器就好了

    前几天听个玩魔兽的朋友说 魔兽世界可以跨大区转服务器 不过需要一点手续费用 我大概记得他说要100元点卡钱 如果梦幻也能跨大区转服务器该多好 我有好多朋友在别的区玩 一直想叫我过去 可是我实在是不舍得现在满级满修的夫妻号 毕竟我和未婚妻辛辛
  • Python魔法方法之 __str__

    1 调用时机 使用print打印对象的时候会使用到 str 方法 例 print 对象 1 如果没有定义 str 方法 print 对象 则会打印对象的引用地址 2 如果自己定义了 str 方法 print 对象 则会打印方法的返回值 2
  • 计算机组成原理--基于Logisim的4位并行加法器实验的应用(超详细/设计/实验/作业/练习)

    目录 课程名 计算机组成原理 内容 作用 设计 实验 作业 练习 学习 基于Logisim的4位并行加法器实验 一 前言 二 环境与设备 三 内容 四 结果与分析 课程名 计算机组成原理 内容 作用 设计 实验 作业 练习 学习 基于Log
  • pytorch中model.eval的作用

    pytorch中model eval 的作用 问题描述 torch onnx export 导出onnx模型后 利用onnxruntime加载onnx模型后 其输出结果与原始 pth模型的输出结果之间存在很大的差距 通过拆分网络结构 定位到