r"""
        Forward computation for char_encoder

        Parameters
        ----------
        inputs: NDArray
            The input tensor is of shape `(seq_len, batch_size, embedding_size)` TNC.
        mask: NDArray
            The mask applied to the input of shape `(seq_len, batch_size)`, the mask will
            be broadcasted along the embedding dimension.

        Returns
        ----------
        output: NDArray
            The output of the encoder with shape `(batch_size, output_size)`

def hybrid_forward(self, F, inputs, mask=None): # pylint: disable=arguments-differ
        r"""
        Forward computation for char_encoder

        Parameters
        ----------
        inputs: NDArray
            The input tensor is of shape `(seq_len, batch_size, embedding_size)` TNC.
        mask: NDArray
            The mask applied to the input of shape `(seq_len, batch_size)`, the mask will
            be broadcasted along the embedding dimension.

        Returns
        ----------
        output: NDArray
            The output of the encoder with shape `(batch_size, output_size)`

        """
        if mask is not None:
            inputs = F.broadcast_mul(inputs, mask.expand_dims(-1))

        inputs = F.transpose(inputs, axes=(1, 2, 0))

        output = self._convs(inputs)

        if self._highways:
            output = self._highways(output)

        if self._projection:
            output = self._projection(output)

        return output