class_docstr: E2E module.
  
  :param int idim: dimension of inputs
  :param int odim: dimension of outputs
  :param Namespace args: argument Namespace containing options
class_docstr_tok: ["E2E","module",".",":","param","int","idim",":","dimension","of","inputs",":","param","int","odim",":","dimension","of","outputs",":","param","Namespace","args",":","argument","Namespace","containing","options"]
docstr: Initialize weight like chainer.
  
  chainer basically uses LeCun way: W ~ Normal(0, fan_in ** -0.5), b = 0
  pytorch basically uses W, b ~ Uniform(-fan_in**-0.5, fan_in**-0.5)
  
  however, there are two exceptions as far as I know.
  - EmbedID.W ~ Normal(0, 1)
  - LSTM.upward.b[forget_gate_range] = 1 (but not used in NStepLSTM)
docstr_tok: ["Initialize","weight","like","chainer",".","chainer","basically","uses","LeCun","way",":","W","~","Normal","(","0",",","fan_in","*","*","-0.5",")",",","b","=","0","pytorch","basically","uses","W",",","b","~","Uniform","(","-fan_in","*","*","-0.5",",","fan_in","*","*","-0.5",")","however",",","there","are","two","exceptions","as","far","as","I","know",".","-","EmbedID.W","~","Normal","(","0",",","1",")","-","LSTM.upward.b","[","forget_gate_range","]","=","1","(","but","not","used","in","NStepLSTM",")"]
code: def init_like_chainer(self):
      """Initialize weight like chainer.
  
      chainer basically uses LeCun way: W ~ Normal(0, fan_in ** -0.5), b = 0
      pytorch basically uses W, b ~ Uniform(-fan_in**-0.5, fan_in**-0.5)
  
      however, there are two exceptions as far as I know.
      - EmbedID.W ~ Normal(0, 1)
      - LSTM.upward.b[forget_gate_range] = 1 (but not used in NStepLSTM)
      """
      lecun_normal_init_parameters(self)
      # exceptions
      # embed weight ~ Normal(0, 1)
      self.dec.embed.weight.data.normal_(0, 1)
      # forget-bias = 1.0
      # https://discuss.pytorch.org/t/set-forget-gate-bias-of-lstm/1745
      for i in range(len(self.dec.decoder)):
          set_forget_bias_to_one(self.dec.decoder[i].bias_ih)
  
imports: import argparse
  import logging
  import math
  import os
  import sys
  from itertools import groupby
  import numpy
  import torch
  from espnet.nets.asr_interface import ASRInterface
  from espnet.nets.e2e_asr_common import get_vgg2l_odim, label_smoothing_dist
  from espnet.nets.pytorch_backend.ctc import ctc_for
  from espnet.nets.pytorch_backend.e2e_asr import E2E
  from espnet.nets.pytorch_backend.e2e_asr import Reporter
  from espnet.nets.pytorch_backend.frontends.feature_transform import feature_transform_for
  from espnet.nets.pytorch_backend.frontends.frontend import frontend_for
  from espnet.nets.pytorch_backend.initialization import lecun_normal_init_parameters, set_forget_bias_to_one
  from espnet.nets.pytorch_backend.nets_utils import get_subsample, make_pad_mask, 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 RNNP, VGG2L
  from espnet.nets.pytorch_backend.rnn.encoders import encoder_for
label_desc: Use image node_id 5 for calling the E2E obj's underlying member method code with example usage: obj.init_like_chainer() without return types