dengzhilong
dengzhilong
@applenob 有个问题很迷惑,麻烦帮助解答一下。 1、在CustomHelper的三个方法中,我的理解initial_fn定义decode的初始输入状态,sample_fn方法根据当前step的rnn cell的outputs确定该step的最终输出,next_inputs_fn根据当前step的相关信息确定下一个step的输入。 2、在每一个step,rnn cell的输出shape为(?, 16, 122),其中第一维等于设定的decode_step大小,最后一维大小与slot的词表大小一致,我的理解最后一维是当前step输出每个slot的概率,根据概率即可获取到当前step的对应的slot的值,不知是否有问题。 3、在next_inputs_fn方法中,请问参数sample_ids表示的是什么呢,是sample_fn返回的值也就是当前step的输出对应的slot的id吗?在您的代码中下一个step的输入包括根据sample_ids获取的embedding,那么这个sample_ids应该是词表的id才对,和前面的假设就矛盾了。如果这个sample_ids是表示word的id,那么这个word是如何确定的呢? 以上问题还请帮助解答,谢谢!
@bringtree 我也认为只有把 slot 的 embedding和 输入的embedding都混合在embedding中才能解释的通,也就是说在该模型中slot也训练了对应的embedding。而且还必须保证slot的index必须在整个vocab中的范围是[0,slot_cnt-1],文本单词的index其实下标从slt_cnt开始,否则就会有问题。因为decode的sample_ids范围是[0,slot_cnt)
same question