| @@ -43,7 +43,7 @@ class _BatchNorm(Cell): | |||
| beta_init='zeros', | |||
| moving_mean_init='zeros', | |||
| moving_var_init='ones', | |||
| use_batch_statistics=True, | |||
| use_batch_statistics=None, | |||
| device_num_each_group=1): | |||
| super(_BatchNorm, self).__init__() | |||
| if num_features < 1: | |||
| @@ -147,7 +147,11 @@ class _BatchNorm(Cell): | |||
| return y | |||
| def construct(self, x): | |||
| if self.training and self.use_batch_statistics: | |||
| if self.use_batch_statistics is None: | |||
| flag = self.training | |||
| else: | |||
| flag = self.use_batch_statistics | |||
| if flag: | |||
| if self.is_ge_backend and self.is_global: | |||
| axes, re_shape = _shape_infer(F.shape(x), self.num_features) | |||
| y = self._global_sync(x, axes, re_shape) | |||
| @@ -236,8 +240,10 @@ class BatchNorm1d(_BatchNorm): | |||
| moving_var_init (Union[Tensor, str, Initializer, numbers.Number]): Initializer for the moving variance. | |||
| The values of str refer to the function `initializer` including 'zeros', 'ones', 'xavier_uniform', | |||
| 'he_uniform', etc. Default: 'ones'. | |||
| use_batch_statistics (bool): If true, use the mean value and variance value of current batch data, else use | |||
| the mean value and variance value of specified value. Default: True. | |||
| use_batch_statistics (bool): If true, use the mean value and variance value of current batch data. If false, | |||
| use the mean value and variance value of specified value. If None, training process will use the mean and | |||
| variance of current batch data and track the running mean and variance, eval process will use the running | |||
| mean and variance. Default: None. | |||
| Inputs: | |||
| - **input** (Tensor) - Tensor of shape :math:`(N, C_{in}, H_{in}, W_{in})`. | |||
| @@ -259,7 +265,7 @@ class BatchNorm1d(_BatchNorm): | |||
| beta_init='zeros', | |||
| moving_mean_init='zeros', | |||
| moving_var_init='ones', | |||
| use_batch_statistics=True): | |||
| use_batch_statistics=None): | |||
| super(BatchNorm1d, self).__init__(num_features, | |||
| eps, | |||
| momentum, | |||
| @@ -307,8 +313,10 @@ class BatchNorm2d(_BatchNorm): | |||
| moving_var_init (Union[Tensor, str, Initializer, numbers.Number]): Initializer for the moving variance. | |||
| The values of str refer to the function `initializer` including 'zeros', 'ones', 'xavier_uniform', | |||
| 'he_uniform', etc. Default: 'ones'. | |||
| use_batch_statistics (bool): If true, use the mean value and variance value of current batch data, else use | |||
| the mean value and variance value of specified value. Default: True. | |||
| use_batch_statistics (bool): If true, use the mean value and variance value of current batch data. If false, | |||
| use the mean value and variance value of specified value. If None, training process will use the mean and | |||
| variance of current batch data and track the running mean and variance, eval process will use the running | |||
| mean and variance. Default: None. | |||
| Inputs: | |||
| - **input** (Tensor) - Tensor of shape :math:`(N, C_{in}, H_{in}, W_{in})`. | |||
| @@ -330,7 +338,7 @@ class BatchNorm2d(_BatchNorm): | |||
| beta_init='zeros', | |||
| moving_mean_init='zeros', | |||
| moving_var_init='ones', | |||
| use_batch_statistics=True): | |||
| use_batch_statistics=None): | |||
| super(BatchNorm2d, self).__init__(num_features, | |||
| eps, | |||
| momentum, | |||
| @@ -379,8 +387,10 @@ class GlobalBatchNorm(_BatchNorm): | |||
| moving_var_init (Union[Tensor, str, Initializer, numbers.Number]): Initializer for the moving variance. | |||
| The values of str refer to the function `initializer` including 'zeros', 'ones', 'xavier_uniform', | |||
| 'he_uniform', etc. Default: 'ones'. | |||
| use_batch_statistics (bool): If true, use the mean value and variance value of current batch data, else use | |||
| the mean value and variance value of specified value. Default: True. | |||
| use_batch_statistics (bool): If true, use the mean value and variance value of current batch data. If false, | |||
| use the mean value and variance value of specified value. If None, training process will use the mean and | |||
| variance of current batch data and track the running mean and variance, eval process will use the running | |||
| mean and variance. Default: None. | |||
| Inputs: | |||
| - **input** (Tensor) - Tensor of shape :math:`(N, C_{in}, H_{in}, W_{in})`. | |||
| @@ -402,7 +412,7 @@ class GlobalBatchNorm(_BatchNorm): | |||
| beta_init='zeros', | |||
| moving_mean_init='zeros', | |||
| moving_var_init='ones', | |||
| use_batch_statistics=True, | |||
| use_batch_statistics=None, | |||
| device_num_each_group=1): | |||
| super(GlobalBatchNorm, self).__init__(num_features, | |||
| eps, | |||