code: def forward(self, sm_tokens, lg_tokens):
      (sm_cls, sm_patch_tokens), (lg_cls, lg_patch_tokens) = map(
          lambda t: (t[:, :1], t[:, 1:]), (sm_tokens, lg_tokens)
      )
  
      for sm_attend_lg, lg_attend_sm in self.layers:
          sm_cls = (
              sm_attend_lg(
                  sm_cls, context=lg_patch_tokens, kv_include_self=True
              )
              + sm_cls
          )
          lg_cls = (
              lg_attend_sm(
                  lg_cls, context=sm_patch_tokens, kv_include_self=True
              )
              + lg_cls
          )
  
      sm_tokens = torch.cat((sm_cls, sm_patch_tokens), dim=1)
      lg_tokens = torch.cat((lg_cls, lg_patch_tokens), dim=1)
      return sm_tokens, lg_tokens
  
imports: import torch
  from torch import nn, einsum
  import torch.nn.functional
  from einops import rearrange, repeat
  from einops.layers.torch import Rearrange
label_desc: Use image node_id 2 for calling the CrossTransformer obj's underlying member method code with example usage: obj.forward(sm_tokens, lg_tokens) and returns: sm_tokens,  lg_tokens