在CNTK中获取所有四个批量标准化参数以进行推理

时间:2017-03-20 02:01:46

标签: cntk

从parameters()函数获得的两个批量标准化(BN)参数不足以进行推理。 BN计算y = gamma *(x-E [x])/ Var [x])+ beta。如何访问其他两个?

2 个答案:

答案 0 :(得分:0)

另外2个(均值和方差统计)是“常数”,因为它们没有使用SGD使用渐变进行训练。你可以通过调用'常数'来找到它们。

答案 1 :(得分:0)

如果使用cntk.layers.BatchNormalization图层并命名图层,则可以按名称访问参数:

>>> y=BatchNormalization(name='bn')
>>> y.bn.scale
Parameter('scale', [], [?])
>>> y.bn.bias
Parameter('bias', [], [?])
>>> y.bn.aggregate_mean
Constant('aggregate_mean', [], [?])
>>> y.bn.aggregate_variance
Constant('aggregate_variance', [], [?])
>>> y.bn.aggregate_count
Constant('aggregate_count', [], [])

请注意,这些是在培训期间为了在推理期间使用而形成的聚合。在培训期间无法访问单个小批量的均值和方差。