class_docstr: Add Gaussian Blur to a 4D tensors
  This layer takes a 4D tensor of {N, C, H, W} as input.
  The Gaussian blur will be performed in given channel number (C) splitly.
class_docstr_tok: ["Add","Gaussian","Blur","to","a","4D","tensors","This","layer","takes","a","4D","tensor","of","{","N",",","C",",","H",",","W","}","as","input",".","The","Gaussian","blur","will","be","performed","in","given","channel","number","(","C",")","splitly","."]
code: def _init_kernel(self):
      sigma = 0.3 * ((self.kernel_size - 1) * 0.5 - 1) + 0.8
  
      n = np.zeros((self.kernel_size, self.kernel_size))
      i = int(self.kernel_size / 2)
      n[i, i] = 1
      kernel = scipy.ndimage.gaussian_filter(n, sigma)
      kernel = kernel.astype("float32")
      kernel = kernel[np.newaxis, np.newaxis, :, :]
      paddle.assign(kernel, self.op[1].weight)
  
imports: from collections import defaultdict
  import paddle
  import paddle.nn
  import paddle.nn.functional
  import numpy
  import scipy
  import paddleseg
  from paddleseg.models import layers, losses
  from paddleseg import utils
  from paddleseg.cvlibs import manager, param_init
label_desc: Use image node_id 3 for calling the GaussianBlurLayer obj's underlying member method code with example usage: obj._init_kernel() without return types