net.train()和net.eval()

本文讲解了在PyTorch中,如何通过net.eval()和net.train()来控制模型在评估和训练的不同行为,包括 BN 层和 Dropout 的启用与禁用。关键在于确保BN使用正确的均值和方差,以保证模型在测试时的稳定表现。
摘要由CSDN通过智能技术生成

1、net.eval() #评估模式,就是net.train(False)。
设置之后会对前向传播相关进行过滤,会关闭dropout BN等 #如果网络本身没有BN和dropout,那就没区别了。

2、net.train()# 将模型设置为训练模式:默认参数是Train。model.train()会启动drop 和 BN,但是model.train(False)不会

3、如果模型中有BN层(Batch Normalization)和Dropout,需要在训练时添加model.train(),在测试时添加model.eval()。其中model.train()是保证BN层用每一批数据的均值和方差,而model.eval()是保证BN用全部训练数据的均值和方差;

转载自model.trian()及model.eval() - Parallax - 博客园

  • 9
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值