基于PyTorch实现BatchNormalization
发布时间
阅读量:
阅读量
BatchNormallization作为一种神经网络中的正则化手段,能够有效提升网络训练速度,并在一定程度上缓解深度网络中出现的“梯度弥散”现象。最初,该技术源于数据预处理领域,后经Google的研究团队引入至神经网络结构中。相关论文可参考:https://arxiv.org/abs/1502.03167>
理论
pytorch batch normalization: http://pytorch.org/docs/master/nn.html#normalization-layers
针对输入x=\{x_1, x_2,\ldots,x_N \}^T,其对应的输出形式为y=\{y_1, y_2,\ldots, y_N\}^T,其中N代表特征维度的数量,即feature map的总数。
x_n=\{x_{n1}, x_{n2},\ldots, x_{nM}\}用于表示x在第n维上的M个数据样本。需要特别指出的是,Batch Normalization操作是在每个特征维度上独立执行的,各个特征维度之间不存在相互依赖关系。
当 weight=1且 bias=0时,该过程将每维数据标准化为均值为0、方差为1的形式。若进一步引入 weight与 bias参数,则会对归一化后的数据进行线性变换,使其标准差变为
全部评论 (0)
还没有任何评论哟~
