code: def forward(self, x, backbone_features):
      backbone_features = (
          [] if backbone_features is None else backbone_features[::-1]
      )
      outputs = []
  
      block_input = x
      output, block_input = self.block0(block_input)
      outputs.append(output)
      output, block_input = self.block1(block_input)
      outputs.append(output)
  
      for block_i in range(2, self.depth):
          block = self.blocks_connected[f"block{block_i}"]
          connector_name = f"connector{block_i}"
          if connector_name in self.connectors:
              stage_features = backbone_features.pop()
              connector = self.connectors[connector_name]
              block_input = connector(block_input, stage_features)
          output, block_input = block(block_input)
          outputs.append(output)
  
      return outputs[::-1]
  
imports: import torch
  from torch import nn
  from functools import partial
  from .basic_blocks import ConvBlock
  from ..ops import FeaturesConnector
label_desc: Use image node_id 2 for calling the UNetEncoder obj's underlying member method code with example usage: obj.forward(x, backbone_features) and returns: outputs