美文网首页
Pytorch 在训练和测试阶段行为差距较大的层的使用介绍

Pytorch 在训练和测试阶段行为差距较大的层的使用介绍

作者: Allard_c205 | 来源:发表于2021-08-17 11:25 被阅读0次

在训练和测试阶段行为差距较大的层,常用的有:batchnorm、dropout、instancenurm等。i其中,nstancenorm是在一个channel中做归一化,算H*W的均值,用在风格化迁移。可以加速模型的收敛,并且保持每个图像实例之间的独立。

对于这种有较大差距的层的使用,需要在测试阶段将training的值设置为False,否则会有很大的影像 。将每层中的参数training设置为TRUE/FALSE较为繁琐,常用的就是model.train() and model.eval()

两者的用法与区别:

***    两者分别作用在训练和测试阶段的开头位置,model.train() 表示启动batchnorm、dropout、instancenorm功能,model.eval()表示直接调用上述层已经训练好的参数来对测试集进行预测。

如果在测试阶段没有加model.eval(),可能会因test的batch_size过小,很容易就会被BN层导致生成图片颜色失真极大

用法示例如下:

相关文章

网友评论

      本文标题:Pytorch 在训练和测试阶段行为差距较大的层的使用介绍

      本文链接:https://www.haomeiwen.com/subject/weibbltx.html