In python/mxnet/gluon/nn/basic_layers.py:

```
class BatchNorm(HybridBlock):
...
    moving_mean_initializer: str or `Initializer`, default 'zeros'
        Initializer for the moving mean.
    moving_variance_initializer: str or `Initializer`, default 'ones'
        Initializer for the moving variance.
...
    def __init__(self, axis=1, momentum=0.9, epsilon=1e-5, center=True, 
scale=True,
                 use_global_stats=False, beta_initializer='zeros', 
gamma_initializer='ones',
                 running_mean_initializer='zeros', 
running_variance_initializer='ones',
                 in_channels=0, **kwargs):
```

Should we rename running_mean_initializer to moving_mean_initializer, and 
running_variance_initializer to moving_variance_initializer?

Also, 

```
        self.running_mean = self.params.get('running_mean', grad_req='null',
                                            shape=(in_channels,),
                                            init=running_mean_initializer,
                                            allow_deferred_init=True,
                                            differentiable=False)
        self.running_var = self.params.get('running_var', grad_req='null',
                                           shape=(in_channels,),
                                           init=running_variance_initializer,
                                           allow_deferred_init=True,
                                           differentiable=False)
```

'running_mean' and 'running_var' are mismatched with op definition:
```
NNVM_REGISTER_OP(BatchNorm)
.set_attr<nnvm::FListInputNames>("FListInputNames",
    [](const NodeAttrs& attrs) {
  return std::vector<std::string>{"data", "gamma", "beta", "moving_mean", 
"moving_var"};
})
```
This will cause trouble for parameter checking. Shall we align them?

[ Full content available at: 
https://github.com/apache/incubator-mxnet/issues/12681 ]
This message was relayed via gitbox.apache.org for [email protected]

Reply via email to