class_docstr: Aligner Network for learning alignment between the input text and the model output with Gaussian Attention.
  
  ::
  
      query -> conv1d -> relu -> conv1d -> relu -> conv1d -> L2_dist -> softmax -> alignment
      key   -> conv1d -> relu -> conv1d -----------------------^
  
  Args:
      in_query_channels (int): Number of channels in the query network. Defaults to 80.
      in_key_channels (int): Number of channels in the key network. Defaults to 512.
      attn_channels (int): Number of inner channels in the attention layers. Defaults to 80.
      temperature (float): Temperature for the softmax. Defaults to 0.0005.
code: def init_layers(self):
      torch.nn.init.xavier_uniform_(
          self.key_layer[0].weight,
          gain=torch.nn.init.calculate_gain("relu"),
      )
      torch.nn.init.xavier_uniform_(
          self.key_layer[2].weight,
          gain=torch.nn.init.calculate_gain("linear"),
      )
      torch.nn.init.xavier_uniform_(
          self.query_layer[0].weight,
          gain=torch.nn.init.calculate_gain("relu"),
      )
      torch.nn.init.xavier_uniform_(
          self.query_layer[2].weight,
          gain=torch.nn.init.calculate_gain("linear"),
      )
      torch.nn.init.xavier_uniform_(
          self.query_layer[4].weight,
          gain=torch.nn.init.calculate_gain("linear"),
      )
  
imports: from typing import Tuple
  import torch
  from torch import nn
label_desc: Use image node_id 2 for calling the AlignmentNetwork obj's underlying member method code with example usage: obj.init_layers() without return types