code: def __init__(
      self,
      in_channels,
      inter_channels,
      out_features_num=4,
      attention_type="scale_spatial",
  ):
      super(ScaleFeatureSelection, self).__init__()
      self.in_channels = in_channels
      self.inter_channels = inter_channels
      self.out_features_num = out_features_num
      self.conv = nn.Conv2d(in_channels, inter_channels, 3, padding=1)
      self.type = attention_type
      if self.type == "scale_spatial":
          self.enhanced_attention = ScaleSpatialAttention(
              inter_channels, inter_channels // 4, out_features_num
          )
      elif self.type == "scale_channel_spatial":
          self.enhanced_attention = ScaleChannelSpatialAttention(
              inter_channels, inter_channels // 4, out_features_num
          )
      elif self.type == "scale_channel":
          self.enhanced_attention = ScaleChannelAttention(
              inter_channels, inter_channels // 2, out_features_num
          )
  
imports: import torch
  import torch.nn
  import torch.nn.functional
label_desc: Use image node_id 1 to create a new ScaleFeatureSelection object from inherited base classes: nn with example: obj = ScaleFeatureSelection(in_channels, inter_channels, out_features_num, attention_type)