class_docstr: Given sequence P and vector q, computes attention weights for each element
  in P by matching q with each element in P using multiplicative attention.
  * a_i = softmax(p_i . W . q)
class_docstr_tok: ["Given","sequence","P","and","vector","q",",","computes","attention","weights","for","each","element","in","P","by","matching","q","with","each","element","in","P","using","multiplicative","attention",".","*","a_i","=","softmax","(","p_i",".","W",".","q",")"]
code: def from_config(cls, config: Config):
      return cls(
          config.p_hidden_dim, config.q_hidden_dim, config.normalize
      )
  
file_path: pytext/pytext/models/representations/attention.py
imports: import torch
  import torch.nn
  import torch.nn.functional
  from pytext.models.module import Module
  from pytext.utils.usage import log_class_usage
label_desc: Use image node_id 1 for calling the MultiplicativeAttention obj's underlying member method code with example usage: obj.from_config(cls, config) and returns: cls