https://zhuanlan.zhihu.com/p/466913996?utm_id=0

在一些训练或测试函数中,常出现下面的用法:

def train():
    net.train()
    ...

def eval():
    net.eval()
    ...

net.train()和net.eval()到底在什么时候使用?
如果一个模型有DropoutBatch Normalization,那么它在训练时要以一定概率进行Dropout或者更新Batch Normalization参数,而在测试时不在需要Dropout或更新Batch Normalization参数。此时,要用net.train()和net.eval()进行区分。

在没有涉及到BN与Dropout的模型,这两个函数没什么用。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐