code: def forward(self, x, emb):
      h = self.in_layers(x)
      emb_out = self.emb_layers(emb).type(h.dtype)
      while len(emb_out.shape) < len(h.shape):
          emb_out = emb_out[..., None]
      if self.use_scale_shift_norm:
          out_norm, out_rest = self.out_layers[0], self.out_layers[1:]
          scale, shift = torch.chunk(emb_out, 2, dim=1)
          h = out_norm(h) * (1 + scale) + shift
          h = out_rest(h)
      else:
          h = h + emb_out
          h = self.out_layers(h)
      return self.skip_connection(x) + h
  
imports: import math
  import random
  from abc import abstractmethod
  import torch
  import torch.nn
  import torch.nn.functional
  from torch import autocast
  from TTS.tts.layers.tortoise.arch_utils import AttentionBlock, normalization
label_desc: Use image node_id 2 for calling the ResBlock obj's underlying member method code with example usage: obj.forward(x, emb) and returns: unknown