class_docstr: This class implements a statistic pooling layer.
  
  It returns the mean and/or std of input tensor.
  
  Arguments
  ---------
  return_mean : True
       If True, the average pooling will be returned.
  return_std : True
       If True, the standard deviation will be returned.
  
  Example
  -------
  >>> inp_tensor = torch.rand([5, 100, 50])
  >>> sp_layer = StatisticsPooling()
  >>> out_tensor = sp_layer(inp_tensor)
  >>> out_tensor.shape
  torch.Size([5, 1, 100])
code: def __init__(self, return_mean=True, return_std=True):
      super().__init__()
  
      # Small value for GaussNoise
      self.eps = 1e-5
      self.return_mean = return_mean
      self.return_std = return_std
      if not (self.return_mean or self.return_std):
          raise ValueError(
              "both of statistics are equal to False \n"
              "consider enabling mean and/or std statistic pooling"
          )
  
imports: import torch
  import logging
  import torch.nn
  import torch.nn.functional
label_desc: Use image node_id 1 to create a new StatisticsPooling object from inherited base classes: nn with example: obj = StatisticsPooling(return_mean, return_std)