class_docstr: The blur layer applies a [1, 2, 1] blur to the input channels.
  
  If such a filter is applied after nearest neighbor upsampling it results in
  implementing bilinear upsamplig ([1, 3, 3, 1] kernel on bed of nails
  upsampling). Similarly this can be used to implement the analoguos
  anti-aliased bilinear downsampling ([1, 3, 3, 1] kernel) if applied to the
  input feature map before average pooling.
class_docstr_tok: ["The","blur","layer","applies","a","[","1",",","2",",","1","]","blur","to","the","input","channels",".","If","such","a","filter","is","applied","after","nearest","neighbor","upsampling","it","results","in","implementing","bilinear","upsamplig","(","[","1",",","3",",","3",",","1","]","kernel","on","bed","of","nails","upsampling",")",".","Similarly","this","can","be","used","to","implement","the","analoguos","anti-aliased","bilinear","downsampling","(","[","1",",","3",",","3",",","1","]","kernel",")","if","applied","to","the","input","feature","map","before","average","pooling","."]
docstr: Initializes the blur layer.
docstr_tok: ["Initializes","the","blur","layer","."]
code: def __init__(self, **kwargs):
      """Initializes the blur layer."""
      super().__init__(**kwargs)
      self._filter_sequence = np.array((1, 2, 1), dtype=np.float32)
  
imports: import math
  from typing import Any, Callable, Dict, Optional, Sequence, Tuple, Union, List
  import numpy
  import tensorflow
label_desc: Use image node_id 1 to create a new Blur2D object from inherited base classes: tf.keras.layers with example: obj = Blur2D()