torch batch_norm计算举例
1. BN
batchnorm的顾名思义是对batch(即多个数据)之间的norm。下面以torch 的batchnorm计算举例来说明
1.1 nn.BatchNorm1d(BN)
1 | nn.BatchNorm1d 指定的的值必须第二维度的数值,即通道数2 |
1.1.1 二维数据
用一组数据做例子
数据内容为 51个点,每一个点都有6个维度,分别是(x,y,yaw,v_yaw,acc,kappa)
1 | import torch |
运行结果表示,51个点的第一个维度所有x,第二个维度 所有y 。。。的平均值
1 | x: mean: 0.00, var: 1.02) |
所有被norm过的维度norm成均值为0,方差为1的分布
1.1.2 三维数据
1 | import torch |
运行结果表示,25条轨迹的第一个点的所有维度的平均值和方差,25条轨迹的第二个点的平均值和方差,25条轨迹的第三个点的平均值和方差…
1 | normalized_data[:,0,:].shape=torch.Size([25, 6]) |
1.2 nn.BatchNorm2d(BN)
注意,这里数据是4维的。norm的对象所有帧中的第i条轨迹
1 | import torch |
这里表示,所有16条数据的中所有的第i条轨迹的均值和方差
1 | normalized_data[:,0].shape=torch.Size([16, 51, 6]) |
LayerNorm
1 | import torch |
Comments