docstr: Forward.
  
  Args:
      x: [M, H, K]
  
  Returns:
      res_out: [M, B, K]
      skip_out: [M, Sc, K]
docstr_tok: ["Forward",".","Args",":","x",":","[","M",",","H",",","K","]","Returns",":","res_out",":","[","M",",","B",",","K","]","skip_out",":","[","M",",","Sc",",","K","]"]
code: def forward(self, x):
      """Forward.
  
      Args:
          x: [M, H, K]
  
      Returns:
          res_out: [M, B, K]
          skip_out: [M, Sc, K]
      """
      shared_block = self.net[:-1]
      shared = shared_block(x)
      res_out = self.net[-1](shared)
      if self.skip_conv is None:
          return res_out
      skip_out = self.skip_conv(shared)
      return res_out, skip_out
  
imports: import torch
  import torch.nn
  import torch.nn.functional
  from espnet2.enh.layers.adapt_layers import make_adapt_layer
label_desc: Use image node_id 2 for calling the DepthwiseSeparableConv obj's underlying member method code with example usage: obj.forward(x) and returns: res_out,  skip_out, res_out