docstr: :param x: (batch * repeat_num for node/edge, emb)
  :return: w and b for affine operation
docstr_tok: [":","param","x",":","(","batch","*","repeat_num","for","node\/edge",",","emb",")",":","return",":","w","and","b","for","affine","operation"]
code: def forward(self, x):
      """
      :param x: (batch * repeat_num for node/edge, emb)
      :return: w and b for affine operation
      """
      if self.apply_batch_norm:
          x = self.bn_before(x)
  
      x = self.linear2(self.tanh(self.linear1(x)))
      x = self.rescale1(x)
      s = x[:, : self.output_dim]
      t = x[:, self.output_dim :]
      s = self.sigmoid(s + self.sigmoid_shift)
      s = self.rescale2(
          s
      )  # linear scale seems important, similar to learnable prior..
      return s, t
  
imports: import numpy
  import torch
  import torch.nn
label_desc: Use image node_id 3 for calling the ST_Net_Sigmoid obj's underlying member method code with example usage: obj.forward(x) and returns: s,  t