class_docstr: Compute attention based on dot product.
  
  Args:
      eprojs (int | None): Dimension of input vectors from encoder.
      dunits (int | None): Dimension of input vectors for decoder.
      att_dim (int): Dimension of input vectors for attention.
class_docstr_tok: ["Compute","attention","based","on","dot","product",".","Args",":","eprojs","(","int","|","None",")",":","Dimension","of","input","vectors","from","encoder",".","dunits","(","int","|","None",")",":","Dimension","of","input","vectors","for","decoder",".","att_dim","(","int",")",":","Dimension","of","input","vectors","for","attention","."]
code: def __init__(self, eprojs, dunits, att_dim):
      super(AttDot, self).__init__()
      with self.init_scope():
          self.mlp_enc = L.Linear(eprojs, att_dim)
          self.mlp_dec = L.Linear(dunits, att_dim)
  
      self.dunits = dunits
      self.eprojs = eprojs
      self.att_dim = att_dim
      self.h_length = None
      self.enc_h = None
      self.pre_compute_enc_h = None
  
file_path: espnet/espnet/nets/chainer_backend/rnn/attentions.py
imports: import chainer
  import chainer.functions
  import chainer.links
  import numpy
label_desc: Use image node_id 1 to create a new AttDot object from inherited base classes: chainer with example: obj = AttDot(eprojs, dunits, att_dim)