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

相关推荐
还有糕手4 分钟前
西南交通大学【机器学习实验2】
人工智能·机器学习
jndingxin6 分钟前
OpenCV CUDA模块设备层-----在 GPU 上执行类似于 std::copy 的操作函数warpCopy()
人工智能·opencv·计算机视觉
weixin_377634847 分钟前
【数据增强】精细化贴图数据增强
人工智能·目标检测·贴图
老A技术联盟12 分钟前
超实用的Cursor使用技巧之案列分析-教你基于Cursor零代码开发一个chrome插件
人工智能·cursor
慧星云16 分钟前
ComfyUI工作流 :一键换背景体验不同场景
人工智能
程序员的小马甲18 分钟前
如何编写AI提示词
人工智能·程序员·产品经理
算家计算18 分钟前
4 位量化 + FP8 混合精度:ERNIE-4.5-0.3B-Paddle本地部署,重新定义端侧推理效率
人工智能·开源
晓131321 分钟前
OpenCV篇——项目(二)OCR文档扫描
人工智能·python·opencv·pycharm·ocr
小白狮ww24 分钟前
VASP 教程:VASP 机器学习力场微调
人工智能·深度学习·机器学习
AIGC包拥它24 分钟前
提示技术系列——链式提示
人工智能·python·langchain·prompt