class_docstr: Apply average pooling across channels.
      
docstr: Args:
      input: shape (B, M, F, T)
  
  Returns:
      Output tensor with shape shape (B, F, T)
docstr_tok: ["Args",":","input",":","shape","(","B",",","M",",","F",",","T",")","Returns",":","Output","tensor","with","shape","shape","(","B",",","F",",","T",")"]
code: def forward(self, input: torch.Tensor) -> torch.Tensor:
      """
      Args:
          input: shape (B, M, F, T)
  
      Returns:
          Output tensor with shape shape (B, F, T)
      """
      return torch.mean(input, dim=-3)
  
imports: import random
  from typing import Callable, Optional
  import torch
  from nemo.collections.asr.parts.submodules.multi_head_attention import MultiHeadAttention
  from nemo.core.classes import NeuralModule, typecheck
  from nemo.core.neural_types import AudioSignal, FloatType, NeuralType, SpectrogramType
  from nemo.utils import logging
label_desc: Use image node_id 4 for calling the ChannelAveragePool obj's underlying member method code with example usage: obj.forward(input) and returns: torch