code: def se_i3d_joint(
      rgb_pt,
      flow_pt,
      num_classes,
      attention,
      pretrained=False,
      progress=True,
  ):
      """Get I3D models with SELayers for different inputs.
  
      Args:
          rgb_pt (string, optional): the name of pre-trained model for RGB input.
          flow_pt (string, optional): the name of pre-trained model for optical flow input.
          num_classes (int): the class number of dataset.
          attention (string, optional): the name of the SELayer.
          pretrained (bool): choose if pretrained parameters are used. (Default: False)
          progress (bool, optional): whether or not to display a progress bar to stderr. (Default: True)
  
      Returns:
          models (dictionary): A dictionary contains models for RGB and optical flow.
      """
  
      i3d_rgb = i3d_flow = None
      if rgb_pt is not None:
          i3d_rgb = se_inception_i3d(
              name=rgb_pt,
              num_channels=3,
              num_classes=num_classes,
              attention=attention,
              pretrained=pretrained,
              progress=progress,
              rgb=True,
          )
      if flow_pt is not None:
          i3d_flow = se_inception_i3d(
              name=flow_pt,
              num_channels=2,
              num_classes=num_classes,
              attention=attention,
              pretrained=pretrained,
              progress=progress,
              rgb=False,
          )
      models = {"rgb": i3d_rgb, "flow": i3d_flow}
      return models
  
file_path: pykale/kale/embed/video_se_i3d.py
imports: import torch.nn
  from torch.hub import load_state_dict_from_url
  from kale.embed.video_i3d import InceptionI3d
  from kale.embed.video_selayer import get_selayer, SELayerC, SELayerT
label_desc: Use image node_id 2 for calling a global function with example usage: se_i3d_joint(rgb_pt, flow_pt, num_classes, attention, pretrained, progress) and returns: models