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不能与输入数据的维度整除