code: def forward(self, *input_tensor, **kwargs):
      for module in self._module_list:
          if id(module) in self._front_func_dict:
              input_tensor = exec_funcs_with_kwargs(
                  self._front_func_dict,
                  id(module),
                  input_tensor,
                  kwargs,
              )
  
          if isinstance(module, CheckpointModule):
              forward_func = module._forward
          else:
              forward_func = module.forward
          module_kwargs = build_kwargs_for_module(
              forward_func, input_tensor, kwargs
          )
          if input_tensor is None:
              input_tensor = call_module(module, kwargs=module_kwargs)
          elif isinstance(input_tensor, torch.Tensor):
              input_tensor = call_module(
                  module, args=(input_tensor,), kwargs=module_kwargs
              )
          else:
              input_tensor = call_module(
                  module, args=input_tensor, kwargs=module_kwargs
              )
  
          if id(module) in self._behind_func_dict:
              input_tensor = exec_funcs_with_kwargs(
                  self._behind_func_dict,
                  id(module),
                  input_tensor,
                  kwargs,
              )
  
      return input_tensor
  
imports: import torch
  from colossalai.legacy.context import ParallelMode
  from colossalai.legacy.core import global_context
  from colossalai.legacy.nn.layer.utils import CheckpointModule
  from colossalai.tensor import ColoParameter
  from colossalai.utils.model.utils import InsertPostInitMethodToModuleSubClasses
  from .layer_spec import LayerSpec
  from .utils import build_kwargs_for_module, call_module, customized_partition, exec_funcs_with_kwargs, partition_balanced, partition_uniform
label_desc: Use image node_id 2 for calling the PipelinableModel obj's underlying member method code with example usage: obj.forward() and returns: input_tensor