这篇“pytorch测试结果不准确怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“pytorch测试结果不准确怎么解决”文章吧。
当我们遇到训练结果不准确的情况的时候,可能需要检查一下定义的Model类中有没有 BN 或 Dropout 层,如果有任何一个存在
那么在测试之前需要加入一行代码:
#model是实例化的模型对象
model = model.eval()
表示将模型转变为evaluation(测试)模式,这样就可以排除BN和Dropout对测试的干扰。
因为BN和Dropout在训练和测试时是不同的:
对于BN,训练时通常采用mini-batch,所以每一批中的mean和std大致是相同的;而测试阶段往往是单个图像的输入,不存在mini-batch的概念。所以将model改为eval模式后,BN的参数固定,并采用之前训练好的全局的mean和std;
对于Dropout,训练阶段,隐含层神经元先乘概率P,再进行激活;而测试阶段,神经元先激活,每个隐含层神经元的输出再乘概率P。
以上就是关于“pytorch测试结果不准确怎么解决”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注云搜网行业资讯频道。