batch训练方法
pytorch的多机多卡分布式训练,精度比单机低,会是什么原因造成的?
pytorch的多机多卡分布式训练,精度比单机低,会是什么原因造成的?
看你用的是DistributedDataParallel还是DistributedSampler,如果每个过程都是一个随机样本数据批次,然后通过Ring-allreduc
深度学习中,normalization的方法都有哪些?
归一化是通过解决深度神经网络内部协变量移位的问题来加速深度神经网络的训练。常用的归一化方法如下:
1)批量正常化最早由google提出。其方法是将输入大小为(B,H,W,C) (b为训练批量,H,W为特征图大小,C为特征图的通道号)的特征张量沿(B,H,W)轴归一化,即特征值将在同一通道归一化。在BN中,假设每一批都是独立同分布的,整体用局部均值和方差估计。BN方法非常依赖于批量大小,尤其是像2和4这样的小批量,因为它可以 不能正确估计整个训练数据的统计信息。
2)重整化在BN的基础上做了一些改进,针对批量过小,非独立的情况。在训练中,采用移动平均法估计均值和方差,从而减少波动。但这种方法本质上还是取决于批量的大小。
3)图层归一化LN就是沿着(C,H,W)轴归一化,也就是对同一批次的特征进行归一化。LN假设所有信道是独立且同分布的,并且具有相似的贡献,因此它不太适合卷积,并且通常用于时间序列模型RNN。
4)实例归一化IN是沿(H,W)轴归一化,即归一化同一批次统一通道的特征。IN在生成和样式传递模型方面非常有效。但是在仅仅依靠空间维度来计算均值和方差时,却忽略了对特征之间关系的探究。
5)5)分组归一化介于LN和IN之间,根据图像的SIFT和HOG特征的思想对特征进行分组和归一化。当group1相当于图层归一化时;;使用groupC时,相当于实例规范化。GN被证明在分类和识别方面更有效。。