
训练时:
请看下面的例子:
4)使用GroupNorm 和 Weight Standardisation
将GroupNorm与Weight Standardisation 结合使用,而不是BatchNorm。 由于模型很大,因此每个加速器(例如GPU或TPU芯片)只能容纳几张图像,当每个加速器上的图像数量太少时,BatchNorm的性能会变差。GroupNorm没有此问题,但不能很好地扩展到较大的批大小。 而将GroupNom与Weight Standardization结合使用时,就可以很好地扩展到大批量,甚至优于BatchNorm。
微调时:
使用BiT微调,即使是在每类样本数很少的时候也能获得叫让人满意的精度。另外谷歌还设计了一套启发式超参数配置机制BiT-HyperRule,无需昂贵的参数搜索就可以在大多数任务中得到相当不错的性能。
BiT-HyperRule 是通过数据集的统计信息和特点,给出一套行之有效的参数配置。
在BiT-HyperRule中,使用SGD,初始学习率为0.003,动量为0.9,批大小为512。
微调过程中,在训练到总步数的30%,60%和90%时,学习率降低10倍。
数据预处理时,对图像进行大小调整,随机裁剪,然后进行随机水平翻转。
除了那些破坏标签语义的动作,对所有任务都做随机裁剪和水平翻转。

另外,谷歌官方给出了使用BiT测试和微调的例子,代码不再贴出,感兴趣的朋友可以在后台回复“BiT”,即可得到包含代码的原文PDF。
原文链接:
https://blog.tensorflow.org/2020/05/bigtransfer-bit-state-of-art-transfer-learning-computer-vision.html