【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所带来的的性质。

相关推荐
沪漂阿龙9 分钟前
从“对话机器人”到“全能数字员工”:一文彻底搞懂 AI Agent(附大量代码实战)
人工智能·chatgpt
Rnan-prince9 分钟前
ReAct:让AI边思考边行动的突破性技术
人工智能
卖酸奶的不错11 分钟前
M-RCGV Memory System Design记忆系统设计文档
人工智能·长短时记忆网络
GGBond今天继续上班19 分钟前
只需要一条命令,让所有 AI 应用工具共享 skills
前端·人工智能·开源
测试员周周19 分钟前
【CrewAI系列2】CrewAI 环境搭不好?纯小白从零部署指南,10 分钟搞定(命令可复制)
人工智能·python
Joshkhh22 分钟前
2026年多模型AI使用指南:Gemini/Claude/GPT如何轻松上手?
人工智能·gpt
旷世奇才李先生25 分钟前
Python\+ERNIE实战:字节跳动式AI内容审核完整实现(附源码)
开发语言·人工智能·python
li星野33 分钟前
Transformer架构梳理
人工智能·深度学习·transformer
独隅41 分钟前
PyTorch转TFLite动态形状处理技巧
人工智能·pytorch·python
猫头虎44 分钟前
一个插件,国内直接用Claude Opus 4.7
人工智能·langchain·开源·prompt·aigc·ai编程·agi