class_docstr: E2E module.
  
  :param List idims: List of dimensions of inputs
  :param int odim: dimension of outputs
  :param Namespace args: argument Namespace containing options
docstr: Add arguments for attentions in multi-encoder setting.
code: def attention_add_arguments(parser):
      """Add arguments for attentions in multi-encoder setting."""
      group = parser.add_argument_group("E2E attention setting")
      # attention
      group.add_argument(
          "--atype",
          type=str,
          action="append",
          choices=[
              "noatt",
              "dot",
              "add",
              "location",
              "coverage",
              "coverage_location",
              "location2d",
              "location_recurrent",
              "multi_head_dot",
              "multi_head_add",
              "multi_head_loc",
              "multi_head_multi_res_loc",
          ],
          help="Type of attention architecture",
      )
      group.add_argument(
          "--adim",
          type=int,
          action="append",
          help="Number of attention transformation dimensions",
      )
      group.add_argument(
          "--awin",
          type=int,
          action="append",
          help="Window size for location2d attention",
      )
      group.add_argument(
          "--aheads",
          type=int,
          action="append",
          help="Number of heads for multi head attention",
      )
      group.add_argument(
          "--aconv-chans",
          type=int,
          action="append",
          help="Number of attention convolution channels \
                             (negative value indicates no location-aware attention)",
      )
      group.add_argument(
          "--aconv-filts",
          type=int,
          action="append",
          help="Number of attention convolution filters \
                             (negative value indicates no location-aware attention)",
      )
      group.add_argument(
          "--dropout-rate",
          type=float,
          action="append",
          help="Dropout rate for the encoder",
      )
      # hierarchical attention network (HAN)
      group.add_argument(
          "--han-type",
          default="dot",
          type=str,
          choices=[
              "noatt",
              "dot",
              "add",
              "location",
              "coverage",
              "coverage_location",
              "location2d",
              "location_recurrent",
              "multi_head_dot",
              "multi_head_add",
              "multi_head_loc",
              "multi_head_multi_res_loc",
          ],
          help="Type of attention architecture (multi-encoder asr mode only)",
      )
      group.add_argument(
          "--han-dim",
          default=320,
          type=int,
          help="Number of attention transformation dimensions in HAN",
      )
      group.add_argument(
          "--han-win",
          default=5,
          type=int,
          help="Window size for location2d attention in HAN",
      )
      group.add_argument(
          "--han-heads",
          default=4,
          type=int,
          help="Number of heads for multi head attention in HAN",
      )
      group.add_argument(
          "--han-conv-chans",
          default=-1,
          type=int,
          help="Number of attention convolution channels  in HAN \
                             (negative value indicates no location-aware attention)",
      )
      group.add_argument(
          "--han-conv-filts",
          default=100,
          type=int,
          help="Number of attention convolution filters in HAN \
                             (negative value indicates no location-aware attention)",
      )
      return parser
  
imports: import argparse
  import logging
  import math
  import os
  from itertools import groupby
  import chainer
  import numpy
  import torch
  from chainer import reporter
  from espnet.nets.asr_interface import ASRInterface
  from espnet.nets.e2e_asr_common import label_smoothing_dist
  from espnet.nets.pytorch_backend.ctc import ctc_for
  from espnet.nets.pytorch_backend.nets_utils import get_subsample, pad_list, to_device, to_torch_tensor
  from espnet.nets.pytorch_backend.rnn.attentions import att_for
  from espnet.nets.pytorch_backend.rnn.decoders import decoder_for
  from espnet.nets.pytorch_backend.rnn.encoders import Encoder, encoder_for
  from espnet.nets.scorers.ctc import CTCPrefixScorer
  from espnet.utils.cli_utils import strtobool
label_desc: Use image node_id 3 for calling the E2E obj's underlying member method code with example usage: obj.attention_add_arguments(parser) and returns: parser