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

相关推荐
朝朝辞暮i13 分钟前
VLA 系统学习第 7 课:loss.backward() 到底做了什么?——从计算图到反向传播
人工智能·python·深度学习·神经网络·vla
serdes2115 分钟前
56G PAM4 SerDes RX MMCDR Mueller–Müller 误差检测与数据对齐设计
人工智能
倔强的石头10620 分钟前
DeepSeek系列_国产大模型的技术创新解析
人工智能·大模型
企业数字化笔记20 分钟前
AI工具的文件和参数怎么设计?上传校验、配置版本与可复现任务
前端·人工智能
seconp29 分钟前
AI 时代怎么做计算机毕业设计?
人工智能·毕业设计·软件工程·课程设计·毕设
loulanyue_36 分钟前
智能成为“商品”之后:读吴泳铭 2026 云栖演讲的六个取舍
人工智能
鬼手点金38 分钟前
opencode-性能优化建议
java·人工智能·git·自动化·nanogpt
在所不辞兄41 分钟前
分层PINN提升多物理场耦合效率
人工智能·深度学习·神经网络·机器学习·工程仿真
AI技术新视界42 分钟前
微软确认 GPT‑6 使用 Looped Transformers
人工智能·llm