pytorch中GroupNorm的使用(笔记)

不使用BatchNorm的原因

  相比起batchNorm,groupNorm对一个batch的size更不敏感。在现有的研究中,batchNorm在batchsize越大的情况下,效果更佳,batchsize=32的情况明显优于batchsize=2。

  在许多计算机视觉的任务中,batchsize由于计算机资源的限制,往往只能设置在1~8之间,而利用GPU训练,设置batchsize=32往往更合适。(玄学的设置)

  但GroupNorm根据相关的研究,其对batchsize的敏感性更小,也就是说较小的batchsize和较大的batchsize,都会得到相对而言不错的结果,不会因为batchsize过小而导致结果变差。

相关链接:全面解读Group Normalization-(吴育昕-何恺明 )——https://zhuanlan.zhihu.com/p/177853578

如何使用GroupNrom?

  

  如图,num_groups是要设置分组的个数,num_channels是输入数据的维度,与输入数据保持一致即可。

  依据现有的研究,GroupNorm中的G的设置,为32的时候最优,16的时候也还可以。

使用GroupNorm出错的一些情况

groupNorm中设置的groupChannels与输入数据的维度不匹配。

  

groupNorm中设置的groupNums不能与输入数据的维度整除

  

posted @ 2023-03-10 09:55  小澳子  阅读(827)  评论(0编辑  收藏  举报