code: def forward(self, x: Tensor) -> Tensor:
      h = x
      h = self.norm1(h)
      h = _nonlinearity(h)
      h = self.conv1(h)
  
      h = self.norm2(h)
      h = _nonlinearity(h)
      h = self.dropout(h)
      h = self.conv2(h)
  
      if self.in_channels != self.out_channels:
          if self.use_conv_shortcut:
              x = self.conv_shortcut(x)
          else:
              x = self.nin_shortcut(x)
  
      return x + h
  
imports: import logging
  from typing import Optional, Sequence
  import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  from torch import Tensor
  from neuralcompression.layers import XCA, ChannelNorm2D
  from .._outputs._vqvae_autoencoder_output import VqVaeAutoencoderOutput
label_desc: Use image node_id 2 for calling the _ResnetBlock obj's underlying member method code with example usage: obj.forward(x) and returns: unknown