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

在训练和测试阶段行为差距较大的层,常用的有: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层导致生成图片颜色失真极大


用法示例如下:

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容