当前位置: 首页 > article >正文

【Pytorch】model.eval()与model.train()

model.train():
        作用是启用Batch Normalization 和 Dropout
        如果模型中有BN层(Batch Normalization)和Dropout,需要在训练时添加model.train()。model.train()是保证BN层能够用到每一批数据的均值和方差。对于Dropout,model.train()是随机取一部分网络连接来训练更新参数。

model.eval():
        如果模型中有BN层(Batch Normalization)和Dropout,在测试时添加model.eval()。保证BN层能够用全部训练数据的均值和方差,即测试过程中要保证BN层的均值和方差不变。对于Dropout,model.eval()是利用到了所有网络连接,即不进行随机舍弃神经元。
        训练完train样本后,生成的模型model要用来测试样本。在测试集上进行测试之前,需要加上model.eval(),否则的话,有输入数据,即使不训练,它也会改变权值。这是model中含有BN层和Dropout所带来的的性质。


http://www.kler.cn/a/385053.html

相关文章:

  • 华为交换机Vlan划分
  • Hive 操作基础(进阶篇✌️)
  • Python-利用tkinter库编写一个exe伪恶意程序文件(下)
  • esp32记录一次错误
  • 使用sealos部署的集群在部署metrics-server时日志x509
  • 基于Spring Boot+Vue的助农销售平台(协同过滤算法、限流算法、支付宝沙盒支付、实时聊天、图形化分析)
  • 微分段如何防止勒索软件攻击
  • 连接kafka消息队列报org.apache.kafka.clients.NetworkClient异常
  • 数据库管理-第258期 23ai:Oracle Data Redaction(20241104)
  • Android Kotlin Flow 冷流 热流
  • C++中,如何找到一个vector中最大的元素
  • 【HarmonyOS】键盘遮挡输入框UI布局处理
  • Flux comfyui 部署笔记,整合包下载
  • MySQL常用的关键字(详细)
  • MATLAB 在数组的元素后面使用百分号 `%` 添加注释时会将其误认为是行分隔符,导致数组维度不一致
  • LangChain实战分享
  • 【Linux】进程信号全攻略(二)
  • 什么是 AWS PrivateLink
  • 深入理解Python设计模式:工厂模式实践与应用
  • SpringCloud Sentinel 服务治理详解
  • 群控系统服务端开发模式-应用开发-系统配置开发
  • netstat中sendq/recvq用于排查发送端发送数据的问题
  • js中怎么把excel和pdf文件转换成图片打包下载
  • 云上拼团GO指南——腾讯云博客部署案例,双11欢乐GO
  • 推导将点映射到平面坐标系的计算公式
  • 金媒婚恋相亲系统10.4择爱开源旗舰版支持微信小程和抖音小程序上架