code: def forward(self, net: Tensor) -> Tensor:
      if self.scale == 2:
          net = pixel_unshuffle(net, scale=2)
      elif self.scale == 1:
          net = pixel_unshuffle(net, scale=4)
      net = self.conv_first(net)
      body = self.conv_body(self.body(net))
      net = net + body
      # upsample
      net = self.lrelu(self.conv_up1(self.upsample(net)))
      net = self.lrelu(self.conv_up2(self.upsample(net)))
      net = self.conv_last(self.lrelu(self.conv_hr(net)))
      return net
  
file_path: carefree-learn/cflearn/models/cv/translator/rrdb.py
imports: import torch
  import torch.nn
  import torch.nn.functional
  from torch import Tensor
  from typing import Optional
  from ....schema import IDLModel
label_desc: Use image node_id 2 for calling the RRDBNet obj's underlying member method code with example usage: obj.forward(net) and returns: net