code: def forward(self, x):
      _assert(x.dim() == 4, "expected 4D input")
      x_dtype = x.dtype
      v_shape = (1, -1, 1, 1)
      if self.apply_act:
          if self.training:
              var = x.float().var(dim=(0, 2, 3), unbiased=False)
              n = x.numel() / x.shape[1]
              self.running_var.copy_(
                  self.running_var * (1 - self.momentum)
                  + var.detach().to(self.running_var.dtype)
                  * self.momentum
                  * (n / (n - 1))
              )
          else:
              var = self.running_var
          var = var.to(x_dtype).view(v_shape)
          left = var.add(self.eps).sqrt_()
          right = (x + 1) * instance_rms(x, self.eps)
          x = x / left.max(right)
      return x * self.weight.view(v_shape).to(x_dtype) + self.bias.view(
          v_shape
      ).to(x_dtype)
  
imports: from typing import Sequence, Union
  import torch
  import torch.nn
  import torch.nn.functional
  from .create_act import create_act_layer
  from .trace_utils import _assert
label_desc: Use image node_id 3 for calling the EvoNorm2dB1 obj's underlying member method code with example usage: obj.forward(x) and returns: unknown