class_docstr: E2E module for chainer backend.
  
  Args:
      idim (int): Dimension of the inputs.
      odim (int): Dimension of the outputs.
      args (parser.args): Training config.
      flag_return (bool): If True, train() would return
          additional metrics in addition to the training
          loss.
docstr: Get custom_parallel_updater of the model.
docstr_tok: ["Get","custom_parallel_updater","of","the","model","."]
code: def custom_parallel_updater(
      iters, optimizer, converter, devices, accum_grad=1
  ):
      """Get custom_parallel_updater of the model."""
      from espnet.nets.chainer_backend.rnn.training import (
          CustomParallelUpdater,
      )
  
      return CustomParallelUpdater(
          iters,
          optimizer,
          converter=converter,
          devices=devices,
          accum_grad=accum_grad,
      )
  
imports: import logging
  import math
  import chainer
  import numpy
  from chainer import reporter
  from espnet.nets.chainer_backend.asr_interface import ChainerASRInterface
  from espnet.nets.chainer_backend.ctc import ctc_for
  from espnet.nets.chainer_backend.rnn.attentions import att_for
  from espnet.nets.chainer_backend.rnn.decoders import decoder_for
  from espnet.nets.chainer_backend.rnn.encoders import encoder_for
  from espnet.nets.e2e_asr_common import label_smoothing_dist
  from espnet.nets.pytorch_backend.e2e_asr import E2E
  from espnet.nets.pytorch_backend.nets_utils import get_subsample
label_desc: Use image node_id 9 for calling the E2E obj's underlying member method code with example usage: obj.custom_parallel_updater(iters, optimizer, converter, devices, accum_grad) and returns: CustomParallelUpdater