code: def compute_stats_(self, embedding):
      # calculate multivariate Gaussian distribution
      B, C, H, W = embedding.shape
      mean = paddle.mean(embedding, axis=0)
      embedding = embedding.reshape((B, C, H * W))
      cov = np.empty((C, C, H * W))
      for i in tqdm(range(H * W)):
          cov[:, :, i] = np.cov(
              embedding[:, :, i].numpy(), rowvar=False
          )
      cov = paddle.to_tensor(
          cov.reshape(C, C, H, W).transpose((2, 3, 0, 1))
      )
      self.compute_inv(mean, cov)
  
imports: import numpy
  from tqdm import tqdm
  import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddle.vision.models.resnet import resnet18, resnet50, wide_resnet50_2
  from scipy.ndimage import gaussian_filter
  from qinspector.cvlib.workspace import register
  from qinspector.uad.utils.utils import cdist, cholesky_inverse, mahalanobis, mahalanobis_einsum, orthogonal, svd_orthogonal
  from qinspector.uad.utils.k_center_greedy import KCenterGreedy
label_desc: Use image node_id 12 for calling the PaDiMPlus obj's underlying member method code with example usage: obj.compute_stats_(embedding) without return types