class_docstr: A bilinear attention layer over a sequence X w.r.t y:
  * o_i = softmax(x_i'Wy) for x_i in X.
  
  Optionally don't normalize output weights.
code: def __init__(self, x_size, y_size, identity=False):
      super(BilinearSeqAttn, self).__init__()
      if not identity:
          self.linear = nn.Linear(y_size, x_size)
      else:
          self.linear = None
  
imports: import torch
  import torch.nn
  import torch.nn.functional
  from torch.autograd import Variable
  import sru
label_desc: Use image node_id 1 to create a new BilinearSeqAttn object from inherited base classes: nn with example: obj = BilinearSeqAttn(x_size, y_size, identity)