code: def forward(self, x):
      if self.channels_last == True:
          x.contiguous(memory_format=torch.channels_last)
  
      layer_1, layer_2, layer_3, layer_4 = forward_vit(
          self.pretrained, x
      )
  
      layer_1_rn = self.scratch.layer1_rn(layer_1)
      layer_2_rn = self.scratch.layer2_rn(layer_2)
      layer_3_rn = self.scratch.layer3_rn(layer_3)
      layer_4_rn = self.scratch.layer4_rn(layer_4)
  
      path_4 = self.scratch.refinenet4(layer_4_rn)
      path_3 = self.scratch.refinenet3(path_4, layer_3_rn)
      path_2 = self.scratch.refinenet2(path_3, layer_2_rn)
      path_1 = self.scratch.refinenet1(path_2, layer_1_rn)
  
      out = self.scratch.output_conv(path_1)
  
      return out
  
file_path: carefree-learn/cflearn/api/cv/third_party/midas/core/dpt_depth.py
imports: import torch
  import torch.nn
  import torch.nn.functional
  from .base_model import BaseModel
  from .blocks import FeatureFusionBlock, FeatureFusionBlock_custom, Interpolate, _make_encoder, forward_vit
label_desc: Use image node_id 2 for calling the DPT obj's underlying member method code with example usage: obj.forward(x) and returns: out