class_docstr: BatchNorm2d where the batch statistics and the affine parameters are fixed.
  
  It contains non-trainable buffers called
  "weight" and "bias", "running_mean", "running_var",
  initialized to perform identity transformation.
  
  The pre-trained backbone models from Caffe2 only contain "weight" and "bias",
  which are computed from the original four parameters of BN.
  The affine transform `x * weight + bias` will perform the equivalent
  computation of `(x - running_mean) / sqrt(running_var) * weight + bias`.
  When loading a backbone model from Caffe2, "running_mean" and "running_var"
  will be left unchanged as identity transformation.
  
  Other pre-trained backbone models may contain all 4 parameters.
  
  The forward is implemented by `F.batch_norm(..., training=False)`.
code: def __init__(self, num_features, eps=1e-5):
      super().__init__()
      self.num_features = num_features
      self.eps = eps
      self.register_buffer("weight", torch.ones(num_features))
      self.register_buffer("bias", torch.zeros(num_features))
      self.register_buffer("running_mean", torch.zeros(num_features))
      self.register_buffer(
          "running_var", torch.ones(num_features) - eps
      )
      self.register_buffer("num_batches_tracked", None)
  
imports: import torch
  import torch.distributed
  from fvcore.nn.distributed import differentiable_all_reduce
  from torch import nn
  from torch.nn import functional
  from detectron2.utils import comm, env
  from .wrappers import BatchNorm2d
label_desc: Use image node_id 1 to create a new FrozenBatchNorm2d object from inherited base classes: nn with example: obj = FrozenBatchNorm2d(num_features, eps)