实现 Batch Normalization(批归一化)的训练模式前向传播。
给定输入张量 X(N×d)、可学习参数 γ(d)、β(d)和数值稳定项 ε,沿 batch 维度进行归一化:
μj=N1i=1∑Nxi,j,σj2=N1i=1∑N(xi,j−μj)2 x^i,j=σj2+εxi,j−μj,yi,j=γj⋅x^i,j+βj第一行包含两个整数 N,d(2≤N≤128,1≤d≤64),表示 batch 大小和特征维度。
接下来 N 行,每行 d 个浮点数,表示输入张量 X。
接下来一行,d 个浮点数,表示缩放参数 γ。
接下来一行,d 个浮点数,表示偏移参数 β。
最后一行,1 个浮点数,表示 ε。
输出三部分:
输入
4 2
1.0 2.0
2.0 4.0
3.0 6.0
4.0 8.0
1.0 1.0
0.0 0.0
1e-5
输出
2.50 5.00
1.25 5.00
-1.34 -1.34
-0.45 -0.45
0.45 0.45
1.34 1.34
说明
特征 1(列 1:[1,2,3,4]):均值 μ1=2.5,方差 σ12=1.25,标准化 (x−2.5)/1.25=[−1.342,−0.447,0.447,1.342]。
特征 2(列 2:[2,4,6,8]):均值 μ2=5,方差 σ22=5,标准化 (x−5)/5=[−1.342,−0.447,0.447,1.342]。
归一化结果里第二行的符号按该标准化序列写成 −0.45。
输入
2 3
0.0 0.0 0.0
2.0 4.0 6.0
2.0 2.0 2.0
1.0 1.0 1.0
1e-5
输出
1.00 2.00 3.00
1.00 4.00 9.00
-1.00 -1.00 -1.00
3.00 3.00 3.00
说明
γ=2,β=1,标准化后乘以 2 加 1。
© CodeFun2000 · 使用条款
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册