def forward(self, inputs, others):
    encoder_word_pos = others[0]
    gsrm_word_pos = others[1]
    gsrm_slf_attn_bias1 = others[2]
    gsrm_slf_attn_bias2 = others[3]
    pvam_feature = self.pvam(inputs, encoder_word_pos, gsrm_word_pos)
    (gsrm_feature, word_out, gsrm_out) = self.gsrm(pvam_feature, gsrm_word_pos, gsrm_slf_attn_bias1, gsrm_slf_attn_bias2)
    final_out = self.vsfd(pvam_feature, gsrm_feature)
    if (not self.training):
        final_out = F.softmax(final_out, dim=1)
    (_, decoded_out) = torch.topk(final_out, k=1)
    predicts = OrderedDict([('predict', final_out), ('pvam_feature', pvam_feature), ('decoded_out', decoded_out), ('word_out', word_out), ('gsrm_out', gsrm_out)])
    return predicts
def forward(self, inputs, others):
    encoder_word_pos = others[0]
    gsrm_word_pos = others[1]
    gsrm_slf_attn_bias1 = others[2]
    gsrm_slf_attn_bias2 = others[3]
    pvam_feature = self.pvam(inputs, encoder_word_pos, gsrm_word_pos)
    (gsrm_feature, word_out, gsrm_out) = self.gsrm(pvam_feature, gsrm_word_pos, gsrm_slf_attn_bias1, gsrm_slf_attn_bias2)
    final_out = self.vsfd(pvam_feature, gsrm_feature)
    if (not self.training):
        final_out = F.softmax(final_out, dim=1)
    (_, decoded_out) = torch.topk(final_out, k=1)
    predicts = OrderedDict([('predict', final_out), ('pvam_feature', pvam_feature), ('decoded_out', decoded_out), ('word_out', word_out), ('gsrm_out', gsrm_out)])
    return predicts