def METHOD_NAME(self, inputs, training=True):
    """
    The forward logic of this wrapper class.
    Parameters
    ----------
    inputs: tf.Tensor
            keys are stored in tf.Tensor. It must be stored in row-major.
            If `dynamic_input = True`, then inputs.shape must be [None,], 
            otherwise, inputs.shape must be [batchsize, slot_num, nnz_per_slot]. 
    training: boolean
            whether training or not.
    Returns
    -------
    emb_vector: tf.float
            the embedding vectors for the input keys. When dynamic_input=False, 
            its shape is *[batchsize, slot_num, nnz_per_slot, embedding_vec_size]*.
            Otherwise, its shape is *[None, embedding_vec_size]*, where *None* equals
            to the size of inputs.
    """
    emb_vector = embedding_ops.embedding_lookup(embedding_variable=self.var, 
                                                values=inputs,
                                                training=training,
                                                dynamic_input=self.dynamic_input)
    return emb_vector