Neural network 在Apple提供的MetalImageRecognition示例代码中,如何对权重和偏差参数执行批量标准化?
自述文件提供了以下评论:Neural network 在Apple提供的MetalImageRecognition示例代码中,如何对权重和偏差参数执行批量标准化?,neural-network,ios10,conv-neural-network,metal,Neural Network,Ios10,Conv Neural Network,Metal,自述文件提供了以下评论: /* The weights for this particular network were batch normalized but for inference we may use : w = gamma / √(s + 0.001), b = ß - ( A * m ) s: variance m: mean gamma : gamma ß: beta w: weights of a feature channel b: bias of
/*
The weights for this particular network were batch normalized but for inference we may use :
w = gamma / √(s + 0.001), b = ß - ( A * m )
s: variance
m: mean
gamma : gamma
ß: beta
w: weights of a feature channel
b: bias of a feature channel
for every feature channel separately to get the corresponding weights and bias
*/
我已经能够使用TensorFlow将所有经过训练的参数从重新训练的初始模型导出为二进制。例如,对于第一个卷积节点,以下是可用的二进制文件:
conv0/BatchNorm/beta
conv0/BatchNorm/beta/指数移动平均值
conv0/BatchNorm/beta/RMSProp
conv0/BatchNorm/beta/RMSProp_1
conv0/批次标准/移动平均值
conv0/BatchNorm/移动平均值/指数移动平均值
conv0/批次标准/移动偏差
conv0/BatchNorm/moving\u方差/指数移动平均值
conv0/重量
conv0/权重/指数移动平均值
conv0/权重/正则化器/L2Loss/值/平均值
conv0/weights/RMSProp
conv0/重量/RMSProp_1
是否对这些文件进行了转换或重新计算,以获得相应的conv.dat文件,或者TensorFlow中是否有一个函数可以通过批量标准化导出每个节点
任何额外的方向都会非常有用,因为这里几乎没有资源来连接这些点
谢谢。我创建了一个回购协议,将初始v3批次标准化权重转换为MPSCNN卷积所需的非标准化权重 在Sergey Ioffe和Christian Szegedy()撰写的论文“批量规范化:通过减少内部协变量移位来加速深层网络训练”中,我们可以使用算法2,输出,步骤11推导:
[Weight = \frac{\gamma}{\sqrt{Var[x]+0.001}} * Weight_{BN}](http://mathurl.com/z7snq3z.png)
[Bias = \beta - (\frac{\gamma}{\sqrt{Var[x]+0.001}}) * E[x]](http://mathurl.com/zo4shhf.png)
注意:我需要10信誉点,然后我才能发布图像或2个链接