model.train()和model.eval()两种模式的原理

这篇具有很好参考价值的文章主要介绍了model.train()和model.eval()两种模式的原理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. model.train()

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

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

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

2. model.eval()

model.eval()的作用是 不启用 Batch Normalization 和 Dropout。

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

model.eval() 是保证 BN 层能够用 全部训练数据 的均值和方差,即测试过程中要保证 BN 层的均值和方差不变。对于 Dropout,model.eval() 是利用到了 所有 网络连接,即不进行随机舍弃神经元。

为什么测试时要用 model.eval() ?

训练完 train 样本后,生成的模型 model 要用来测试样本了。在 model(test) 之前,需要加上model.eval(),否则的话,有输入数据,即使不训练,它也会改变权值。这是 model 中含有 BN 层和 Dropout 所带来的的性质。

eval() 时,pytorch 会自动把 BN 和 DropOut 固定住,不会取平均,而是用训练好的值。
不然的话,一旦 test 的 batch_size 过小,很容易就会被 BN 层导致生成图片颜色失真极大。
eval() 在非训练的时候是需要加的,没有这句代码,一些网络层的值会发生变动,不会固定,你神经网络每一次生成的结果也是不固定的,生成质量可能好也可能不好。

也就是说,测试过程中使用model.eval(),这时神经网络会 沿用 batch normalization 的值,而并 不使用 dropout。文章来源地址https://www.toymoban.com/news/detail-830686.html

到了这里,关于model.train()和model.eval()两种模式的原理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 人工智能原理(5)

    目录 一、不确定性推理 1、不确定性推理含义 2、知识不确定性的来源 3、不确定推理要解决的基本问题 4、不确定性推理方法分类 二、主观贝叶斯方法 1、主观贝叶斯方法 2、知识不确定性的表示 3、证据 4、不确定性的更新 三、可信度方法 1、可信度模型 2、性质 3、可信度方

    2024年02月12日
    浏览(31)
  • 人工智能原理(4)

    目录 一、确定性推理 1、推理方式 2、控制策略 二、推理的逻辑基础 1、永真和可满足性 2、等价性和永真蕴含 3、置换与合一 三、自然演绎推理 四、归结演绎推理 1、子句型 2、鲁滨逊归结原理 3、归结策略         推理:就是按照某种策略从已有事实(证据)和知识推出结

    2024年02月12日
    浏览(37)
  • 【人工智能】AGI 通用人工智能基础概念、实现原理、挑战和发展前景

    Artificial intelligence prompt completion by dalle mini, https://github.com/borisdayma/dalle-mini 随着计算机技术、机器学习和神经网络等技术的发展,人工智能(Artificial Intelligence, AI)已经成为当今计算机科学和工程领域的热门话题之一。 强人工智能(Strong AI)或通用人工智能(英语:Artificia

    2024年02月09日
    浏览(62)
  • 【AI人工智能】用于代码生成的大型语言模型 Large Language Models for Code Generation

      目录 Large Language Models for Code Generation – Part 1用于代码生成的大型语言模型——第 1 部分 Introduction

    2024年02月08日
    浏览(72)
  • 人工智能 归结原理实验报告

    一、实验目的 加深学生对归结原理进行定理证明过程的理解,掌握基于谓词逻辑的归 结过程中子句变换过程、替换与合一算法即归结策略等重要环节,进一步了解实 现机器自动定理证明的步骤。 二、实验内容 对于任意一阶谓词逻辑描述的定理,给出基于归结原理的证明过

    2023年04月08日
    浏览(48)
  • 【头歌】期末复习人工智能原理

    目录 人工智能之盲目搜索算法 第1关:盲目搜索之宽度优先搜索算法 第2关:盲目搜索之深度优先搜索算法 问题求解的基本原理 第1关:状态空间法问题求解 第2关:问题归约法问题求解 启发式搜索算法 第1关:评估函数和启发信息 第2关:A*搜索算法 语义网络 第1关:语义网

    2024年02月05日
    浏览(45)
  • 人工智能的商业模式与前景如何?

    作者:禅与计算机程序设计艺术 人工智能(AI)是指将认知、理解、推理、学习、决策等能力集成到计算机、手机、汽车或其他智能设备中,使它们具备智能的功能。它可以解决一些复杂的问题、自动化重复性工作、优化生产流程、减少人力资源开销等。近几年来,随着传感

    2024年02月08日
    浏览(42)
  • 【人工智能】大模型LLM技术生态全景图 | The Foundation Large Language Model (LLM) & Tooling Landscape

    目录 “Software is eating the world…”  “软件正在吞噬世界...”~ Marc Andreessen ~ 马克·安德森 Every company is a software company…soon every company will be an AI company.每家公司都是软件公司...很快,每家公司都将成为人工智能公司。 Everybody is using software…soon everybody will directly be using AI.每个

    2024年02月08日
    浏览(47)
  • 人工智能原理课后习题(考试相关的)

    什么是人工智能? 人工智能就是让机器看起来像人类表现出的智能水平一样 人工智能就是人工实现人类智能,通过将初始信息生成和调度知识,在目标的引导下,生成求解问题的策略,并由推理策略转换成智能行为,从而生成解决问题的能力。 什么是图灵测试?他必须具备

    2024年01月16日
    浏览(38)
  • 人工智能原理概述 - ChatGPT 背后的故事

    大家好,我是比特桃。如果说 2023 年最火的事情是什么,毫无疑问就是由 ChatGPT 所引领的AI浪潮。今年无论是平日的各种媒体、工作中接触到的项目还是生活中大家讨论的热点,都离不开AI。其实对于互联网行业来说,自从深度学习出来后就一直很火。但由于之前 AI 在可变现

    2024年02月13日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包