|
|
|
@@ -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, |
|
|
|
|