class_docstr: This class implements the Squeeze-and-Excitation module.
  
  Arguments
  ---------
  inner_dim : int
      Inner dimension of bottle-neck network of the SE Module (default 12).
  activation : torch class
      Activation function for SE Module (default torch.nn.Sigmoid).
  norm : torch class
      Normalization to regularize the model (default BatchNorm1d).
  
  Example
  -------
  >>> inp = torch.randn([8, 120, 40])
  >>> net = SEmodule(input_shape=inp.shape, inner_dim=64)
  >>> out = net(inp)
  >>> out.shape
  torch.Size([8, 120, 40])
class_docstr_tok: ["This","class","implements","the","Squeeze-and-Excitation","module",".","Arguments","--","--","--","--","-","inner_dim",":","int","Inner","dimension","of","bottle-neck","network","of","the","SE","Module","(","default","12",")",".","activation",":","torch","class","Activation","function","for","SE","Module","(","default","torch.nn.Sigmoid",")",".","norm",":","torch","class","Normalization","to","regularize","the","model","(","default","BatchNorm1d",")",".","Example","--","--","--","-",">",">",">","inp","=","torch.randn","(","[","8",",","120",",","40","]",")",">",">",">","net","=","SEmodule","(","input_shape=inp.shape",",","inner_dim=64",")",">",">",">","out","=","net","(","inp",")",">",">",">","out.shape","torch.Size","(","[","8",",","120",",","40","]",")"]
code: def __init__(
      self,
      input_shape,
      inner_dim,
      activation=torch.nn.Sigmoid,
      norm=BatchNorm1d,
  ):
      super().__init__()
      self.inner_dim = inner_dim
      self.norm = norm
      self.activation = activation
  
      bz, t, chn = input_shape
      self.conv = Sequential(input_shape=input_shape)
      self.conv.append(
          DepthwiseSeparableConv1d,
          out_channels=chn,
          kernel_size=1,
          stride=1,
      )
      self.conv.append(self.norm)
      self.conv.append(self.activation())
  
      self.avg_pool = AdaptivePool(1)
      self.bottleneck = Sequential(
          Linear(input_size=input_shape[-1], n_neurons=self.inner_dim),
          self.activation(),
          Linear(input_size=self.inner_dim, n_neurons=chn),
          self.activation(),
      )
  
file_path: speechbrain/speechbrain/lobes/models/ContextNet.py
imports: import torch
  from torch.nn import Dropout
  from speechbrain.nnet.CNN import DepthwiseSeparableConv1d, Conv1d
  from speechbrain.nnet.linear import Linear
  from speechbrain.nnet.pooling import AdaptivePool
  from speechbrain.nnet.containers import Sequential
  from speechbrain.nnet.normalization import BatchNorm1d
  from speechbrain.nnet.activations import Swish
label_desc: Use image node_id 1 to create a new SEmodule object from inherited base classes: torch.nn with example: obj = SEmodule(input_shape, inner_dim, activation, norm)