class_docstr: Chainer implementation of ctc layer.
  
  Args:
      odim (int): The output dimension.
      eprojs (int | None): Dimension of input vectors from encoder.
      dropout_rate (float): Dropout rate.
class_docstr_tok: ["Chainer","implementation","of","ctc","layer",".","Args",":","odim","(","int",")",":","The","output","dimension",".","eprojs","(","int","|","None",")",":","Dimension","of","input","vectors","from","encoder",".","dropout_rate","(","float",")",":","Dropout","rate","."]
docstr: Log_softmax of frame activations.
  
  Args:
      hs (list of chainer.Variable | N-dimension array):
          Input variable from encoder.
  
  Returns:
      chainer.Variable: A n-dimension float array.
docstr_tok: ["Log_softmax","of","frame","activations",".","Args",":","hs","(","list","of","chainer.Variable","|","N-dimension","array",")",":","Input","variable","from","encoder",".","Returns",":","chainer.Variable",":","A","n-dimension","float","array","."]
code: def log_softmax(self, hs):
      """Log_softmax of frame activations.
  
      Args:
          hs (list of chainer.Variable | N-dimension array):
              Input variable from encoder.
  
      Returns:
          chainer.Variable: A n-dimension float array.
  
      """
      y_hat = self.ctc_lo(F.pad_sequence(hs), n_batch_axes=2)
      return F.log_softmax(y_hat.reshape(-1, y_hat.shape[-1])).reshape(
          y_hat.shape
      )
  
file_path: espnet/espnet/nets/chainer_backend/ctc.py
imports: import logging
  import chainer
  import chainer.functions
  import chainer.links
  import numpy
label_desc: Use image node_id 3 for calling the CTC obj's underlying member method code with example usage: obj.log_softmax(hs) and returns: F