code: def forward(self, input):
      ### create input pyramid
      input_downsampled = [input]
      for i in range(self.n_local_enhancers):
          input_downsampled.append(
              self.downsample(input_downsampled[-1])
          )
  
      ### output at coarest level
      output_prev = self.model(input_downsampled[-1])
      ### build up one layer at a time
      for n_local_enhancers in range(1, self.n_local_enhancers + 1):
          model_downsample = getattr(
              self, "model" + str(n_local_enhancers) + "_1"
          )
          model_upsample = getattr(
              self, "model" + str(n_local_enhancers) + "_2"
          )
          input_i = input_downsampled[
              self.n_local_enhancers - n_local_enhancers
          ]
          output_prev = model_upsample(
              model_downsample(input_i) + output_prev
          )
      return output_prev
  
imports: import torch
  import torch.nn
  import functools
  from torch.autograd import Variable
  import numpy
label_desc: Use image node_id 2 for calling the LocalEnhancer obj's underlying member method code with example usage: obj.forward(input) and returns: output_prev