docstr: Sends the gradient tensor to the previous stage in pipeline.
     For 1F1B.
  
  Args:
      input_object (Any): Object to be sent.
      prev_rank (int, optional): The rank of the recipient of the tensor
docstr_tok: ["Sends","the","gradient","tensor","to","the","previous","stage","in","pipeline",".","For","1F1B",".","Args",":","input_object","(","Any",")",":","Object","to","be","sent",".","prev_rank","(","int",",","optional",")",":","The","rank","of","the","recipient","of","the","tensor"]
code: def send_backward(
      self, input_tensor_grad: Any, prev_rank: int = None
  ) -> None:
      """Sends the gradient tensor to the previous stage in pipeline.
         For 1F1B.
  
      Args:
          input_object (Any): Object to be sent.
          prev_rank (int, optional): The rank of the recipient of the tensor
      """
      if not self.stage_manager.is_first_stage():
          self.comm.send_backward(
              input_tensor_grad,
              prev_rank,
              send_metadata=self.send_grad_metadata,
          )
          self.send_grad_metadata = not self.enable_metadata_cache
  
imports: from functools import partial
  from typing import Any, Callable, Dict, Iterable, List, Optional, Union
  import torch
  import torch.cuda
  from torch.nn import Module
  from torch.utils._pytree import tree_map
  from colossalai.interface import ModelWrapper, OptimizerWrapper
  from colossalai.pipeline.p2p import PipelineP2PCommunication, create_send_metadata
  from colossalai.pipeline.stage_manager import PipelineStageManager
  from colossalai.utils.device import get_current_device
  from ._utils import detach, get_batch_size, get_micro_batch, merge_batch, model_forward, retain_grad, to_device, tree_map_hf
  from .base import PipelineSchedule
label_desc: Use image node_id 7 for calling the OneForwardOneBackwardSchedule obj's underlying member method code with example usage: obj.send_backward(input_tensor_grad, prev_rank) without return types