code: def forward(self, x, mask):
      if mask.shape[2:] != x.shape[:2]:
          mask = nn.functional.interpolate(
              mask,
              size=x.size()[-2:],
              mode="bilinear",
              align_corners=True,
          )
      pooled_x = torch.cat(
          [self.global_max_pool(x, mask), self.global_avg_pool(x)],
          dim=1,
      )
      channel_attention_weights = self.attention_transform(pooled_x)[
          ..., None, None
      ]
  
      return channel_attention_weights * x
  
imports: import torch
  import torch.nn
label_desc: Use image node_id 2 for calling the MaskedChannelAttention obj's underlying member method code with example usage: obj.forward(x, mask) and returns: unknown