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","."]
docstr: Args:
      channels (int): Channel for input tensor
      kernel_size (int): Size of the kernel used in blurring
docstr_tok: ["Args",":","channels","(","int",")",":","Channel","for","input","tensor","kernel_size","(","int",")",":","Size","of","the","kernel","used","in","blurring"]
code: def __init__(self, channels: int, kernel_size: int):
      """
      Args:
          channels (int): Channel for input tensor
          kernel_size (int): Size of the kernel used in blurring
      """
  
      super(GaussianBlurLayer, self).__init__()
      self.channels = channels
      self.kernel_size = kernel_size
      assert self.kernel_size % 2 != 0
  
      self.op = nn.Sequential(
          nn.Pad2D(int(self.kernel_size / 2), mode="reflect"),
          nn.Conv2D(
              channels,
              channels,
              self.kernel_size,
              stride=1,
              padding=0,
              bias_attr=False,
              groups=channels,
          ),
      )
  
      self._init_kernel()
      self.op[1].weight.stop_gradient = True
  
imports: import os
  import time
  import argparse
  from typing import Callable, Union, List, Tuple
  import numpy
  import cv2
  import scipy
  import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddlehub.module.module import moduleinfo
  import paddlehub.vision.segmentation_transforms
  from paddlehub.module.module import moduleinfo, runnable, serving
  from modnet_hrnet18_matting.hrnet import HRNet_W18
  import modnet_hrnet18_matting.processor
label_desc: Use image node_id 1 to create a new GaussianBlurLayer object from inherited base classes: nn with example: obj = GaussianBlurLayer(channels, kernel_size)