code: def forward(self, x, temb, hey=False):
      h = x
  
      # make sure hidden states is in float32
      # when running in half-precision
      h = self.norm1(h.astype("float32")).astype(h.dtype)
      h = self.nonlinearity(h)
  
      if self.upsample is not None:
          x = self.upsample(x)
          h = self.upsample(h)
      elif self.downsample is not None:
          x = self.downsample(x)
          h = self.downsample(h)
  
      h = self.conv1(h)
  
      if temb is not None:
          temb = self.time_emb_proj(self.nonlinearity(temb))[
              :, :, None, None
          ]
          h = h + temb
  
      # make sure hidden states is in float32
      # when running in half-precision
      h = self.norm2(h.astype("float32")).astype(h.dtype)
      h = self.nonlinearity(h)
  
      h = self.dropout(h)
      h = self.conv2(h)
  
      if self.conv_shortcut is not None:
          x = self.conv_shortcut(x)
  
      out = (x + h) / self.output_scale_factor
  
      return out
  
imports: from functools import partial
  import numpy
  import paddle
  import paddle.nn
  import paddle.nn.functional
label_desc: Use image node_id 2 for calling the ResnetBlock obj's underlying member method code with example usage: obj.forward(x, temb, hey) and returns: out