pytorch实现训练与测试不同输出

pytroch实现训练与测试的不同输出

之前我们一直在说model.train()model.eval()有利于BN与Dropout的实现。这是为什么呢?

因为BN与Dropout是对训练与测试是有不同的操作的!所以我们需要区分训练与测试。

在训练或测试代码之前我们规定:

  • 训练要加model.train()
  • 测试要加model.eval()

这是因为这样可以将模型中的training属性置truefalse。这样我们在就知道模型有没有训练了。

class Model(nn.Module):
    def __init__(self):
        pass
    def isTraining(self):
        if self.training:
            return True
        else:
            return False
        
model = Model()
model.train()
print(model.training)
model.isTraining()

model.eval()
print(model.training)
model.isTraining()
result:
True
True
False
False
上一篇:[PN31]UER: An Open-Source Toolkit for Pre-training Models


下一篇:2021-03-28